
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;
  mp_ptr pmVar6;
  int *piVar7;
  word *pwVar8;
  word *pwVar9;
  byte *pbVar10;
  byte *pbVar11;
  uint uVar12;
  char *pcVar13;
  int iVar14;
  int iVar15;
  tmp_reentrant_t *ptVar16;
  undefined4 uVar17;
  uint uVar18;
  mp_limb_t *pmVar19;
  Elf32_Ehdr *pEVar20;
  undefined4 uVar21;
  Elf32_Ehdr *pEVar22;
  undefined4 *puVar23;
  undefined4 uVar24;
  undefined4 uVar25;
  mp_limb_t mVar26;
  mp_srcptr pmVar27;
  int iVar28;
  Elf32_Ehdr *in_t1;
  Elf32_Ehdr *pEVar29;
  uint in_t2;
  Elf32_Ehdr *in_t3;
  Elf32_Ehdr *pEVar30;
  Elf32_Ehdr *pEVar31;
  Elf32_Ehdr *pEVar32;
  tmp_reentrant_t *ptVar33;
  Elf32_Ehdr *pEVar34;
  tmp_reentrant_t *ptVar35;
  undefined *puVar36;
  undefined *puVar37;
  code *pcVar38;
  undefined1 *puVar39;
  undefined1 *puVar40;
  undefined1 *puVar41;
  int iVar42;
  code *pcVar43;
  undefined4 uVar44;
  code *pcVar45;
  uint uVar46;
  uint uVar47;
  uint uVar48;
  undefined8 uVar49;
  undefined1 auStack_58 [24];
  tmp_reentrant_t *__tmp_marker;
  int local_2c;
  
  pEVar22 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;
  puVar39 = auStack_58;
  pEVar34 = (Elf32_Ehdr *)(an * 4);
  __tmp_marker = (tmp_reentrant_t *)0x0;
  local_2c = *(int *)PTR___stack_chk_guard_0009d540;
  if (pEVar34 < (Elf32_Ehdr *)0x7f01) {
    iVar14 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);
    puVar39 = auStack_58 + iVar14;
    pEVar30 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar14);
  }
  else {
    pEVar30 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,pEVar34)
    ;
  }
  uVar18 = ((an - mn) + 1) * 4;
  if (uVar18 < 0x7f01) {
    iVar14 = -(uVar18 + 7 & 0xfffffff8);
    puVar3 = puVar39 + iVar14 + 0x18;
    puVar39 = puVar39 + iVar14;
  }
  else {
    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);
  }
  if (an != 0) {
    iVar14 = an + -1;
    mVar26 = *ap;
    if (iVar14 == 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;
      pEVar34 = 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;
        iVar14 = iVar14 + -1;
        mVar26 = *pmVar19;
        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;
        pmVar19 = pmVar19 + 1;
      } while (iVar14 != 0);
      pEVar34 = (Elf32_Ehdr *)((int)&pEVar34[-1].e_shnum + (int)pEVar30);
      pEVar34->e_ident_magic_num = (char)(mVar26 >> 0x18);
      pEVar34->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);
      pEVar34->e_ident_magic_str[1] = (char)(mVar26 >> 8);
      pEVar34->e_ident_magic_str[2] = (char)mVar26;
    }
  }
  *(undefined1 **)(puVar39 + 0x14) = puVar3;
  *(gmp_pi1_t **)(puVar39 + 0x10) = dinv;
  pEVar20 = (Elf32_Ehdr *)an;
  pEVar29 = (Elf32_Ehdr *)mn;
  mod((mp_ptr)pEVar30,an,mp,mn,*(gmp_pi1_t **)(puVar39 + 0x10),*(mp_ptr *)(puVar39 + 0x14));
  pEVar32 = (Elf32_Ehdr *)mn;
  if (mn != 0) {
    iVar14 = mn + -1;
    pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num;
    pmVar6 = tp;
    pEVar31 = pEVar30;
    if (iVar14 != 0) {
      do {
        *pmVar6 = (mp_limb_t)pEVar20;
        iVar14 = iVar14 + -1;
        pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;
        pmVar6 = pmVar6 + 1;
        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;
      } while (iVar14 != 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 *)PTR___gmp_tmp_reentrant_free_0009d618)();
  }
  if (local_2c == *(int *)pEVar22) {
    return;
  }
  pcVar43 = __gmpz_powm_ui;
  puVar36 = PTR___stack_chk_fail_0009d4d0;
  (*(code *)PTR___stack_chk_fail_0009d4d0)();
  puVar37 = puVar36 + 0x73c70;
  puVar4 = *(undefined4 **)(puVar36 + 0x6c170);
  puVar41 = puVar39 + -0xa8;
  puVar3 = puVar39 + -0xa8;
  puVar40 = puVar39 + -0xa8;
  *(undefined1 **)(puVar39 + -8) = auStack_58;
  *(mp_srcptr *)(puVar39 + -0x20) = ap;
  *(code **)(puVar39 + -4) = pcVar43;
  *(undefined4 **)(puVar39 + -0x58) = puVar4;
  *(gmp_pi1_t **)(puVar39 + -0xc) = dinv;
  *(Elf32_Ehdr **)(puVar39 + -0x10) = pEVar34;
  *(mp_size_t *)(puVar39 + -0x14) = an;
  *(Elf32_Ehdr **)(puVar39 + -0x18) = pEVar22;
  *(Elf32_Ehdr **)(puVar39 + -0x1c) = pEVar32;
  *(Elf32_Ehdr **)(puVar39 + -0x24) = pEVar30;
  *(mp_ptr *)(puVar39 + -0x28) = tp;
  *(undefined **)(puVar39 + -0x90) = puVar37;
  *(tmp_reentrant_t **)(puVar39 + -0x54) = ptVar16;
  *(Elf32_Ehdr **)(puVar39 + -0x5c) = pEVar20;
  *(Elf32_Ehdr **)(puVar39 + -0x68) = pEVar29;
  *(undefined4 *)(puVar39 + -0x2c) = *puVar4;
  pEVar31 = (Elf32_Ehdr *)mp;
  if (mp < (Elf32_Ehdr *)0x14) {
    pEVar5 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;
    *(undefined4 *)(puVar39 + -0x4c) = *(undefined4 *)&pEVar29->e_ident_abiversion;
    pEVar34 = pEVar5;
    if ((int)pEVar5 < 0) {
      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;
    }
    *(Elf32_Ehdr **)(puVar39 + -0x78) = pEVar34;
    if (pEVar5 == (Elf32_Ehdr *)0x0) {
      pEVar22 = (Elf32_Ehdr *)mp;
      uVar49 = (**(code **)(puVar36 + 0x6c210))();
LAB_00031d4c:
      uVar18 = (uint)uVar49;
      pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)((ulonglong)uVar49 >> 0x20));
      puVar3 = puVar41;
    }
    else {
      pEVar30 = (Elf32_Ehdr *)((int)pEVar34 * 4);
      if ((Elf32_Ehdr *)mp == (Elf32_Ehdr *)0x0) {
        uVar18 = 1;
        if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {
          uVar18 = (uint)(**(int **)(puVar39 + -0x4c) != 1);
        }
        ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x54);
        ptVar33 = ptVar16[1].next;
        ptVar16->size = uVar18;
        ptVar33->next = (tmp_reentrant_t *)0x1;
        puVar3 = puVar39 + -0xa8;
        goto LAB_00031764;
      }
      *(undefined4 *)(puVar39 + -0x40) = 0;
      *(word **)(puVar39 + -0x50) = &pEVar30[-1].e_shnum;
      pEVar22 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar39 + -0x4c));
      if (pEVar22 < &Elf32_Ehdr_00010000) {
        iVar14 = 0x20;
        if ((Elf32_Ehdr *)0xff < pEVar22) {
          iVar14 = 0x18;
        }
        iVar15 = 9;
        if ((Elf32_Ehdr *)0xff >= pEVar22) {
          iVar15 = 1;
        }
      }
      else {
        iVar14 = 0x10;
        if ((Elf32_Ehdr *)0xffffff < pEVar22) {
          iVar14 = 8;
        }
        iVar15 = 0x19;
        if ((Elf32_Ehdr *)0xffffff >= pEVar22) {
          iVar15 = 0x11;
        }
      }
      tp = *(mp_ptr *)(puVar36 + 0x6bdbc);
      iVar14 = iVar14 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar22 >> iVar15];
      *(int *)(puVar39 + -0x6c) = iVar14;
      puVar41 = puVar39 + -0xa8;
      if (iVar14 != 0) {
        if (*(int *)(puVar39 + -0x50) + 4U < 0x7f01) {
          iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);
          puVar40 = puVar39 + iVar14 + -0xa8;
          pEVar30 = (Elf32_Ehdr *)(puVar39 + iVar14 + -0x90);
        }
        else {
          pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40);
          puVar37 = *(undefined **)(puVar39 + -0x90);
        }
        (**(code **)(puVar37 + -0x7ad4))
                  (pEVar30,*(undefined4 *)(puVar39 + -0x4c),pEVar34,*(undefined4 *)(puVar39 + -0x6c)
                  );
        puVar37 = *(undefined **)(puVar39 + -0x90);
        *(Elf32_Ehdr **)(puVar39 + -0x4c) = pEVar30;
        pEVar22 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50));
        puVar41 = puVar40;
      }
      if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {
        pEVar29 = (Elf32_Ehdr *)0x0;
      }
      else {
        pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4);
      }
      pEVar20 = (Elf32_Ehdr *)((uint)pEVar22 >> 0x10);
      if (pEVar20 == (Elf32_Ehdr *)0x0) {
        trap(7);
      }
      uVar47 = ~(uint)pEVar22 / (uint)pEVar20;
      in_t2 = (uint)pEVar22 & 0xffff;
      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar47);
      pEVar32 = (Elf32_Ehdr *)(~(uint)pEVar22 % (uint)pEVar20 << 0x10 | 0xffff);
      uVar18 = uVar47;
      in_t1 = pEVar29;
      puVar3 = puVar41;
      if (pEVar32 < in_t3) {
        pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);
        uVar18 = uVar47 - 1;
        if ((pEVar22 <= pEVar32) && (uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3))
        goto LAB_00031d4c;
      }
    }
    if (pEVar20 == (Elf32_Ehdr *)0x0) {
      trap(7);
    }
    uVar48 = (uint)((int)pEVar32 - (int)in_t3) / (uint)pEVar20;
    pEVar32 = (Elf32_Ehdr *)((uint)((int)pEVar32 - (int)in_t3) % (uint)pEVar20 << 0x10 | 0xffff);
    uVar47 = uVar48;
    if ((pEVar32 < (Elf32_Ehdr *)(in_t2 * uVar48)) &&
       (((Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num) < pEVar22 ||
        (uVar47 = uVar48 - 2,
        (Elf32_Ehdr *)(in_t2 * uVar48) <=
        (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num))))) {
      uVar47 = uVar48 - 1;
    }
    uVar47 = uVar18 << 0x10 | uVar47;
    pEVar32 = (Elf32_Ehdr *)(&in_t1->e_ident_magic_num + uVar47 * (int)pEVar22);
    lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);
    if (pEVar32 < in_t1) {
      uVar18 = pEVar32 < pEVar22 ^ 1;
      pEVar20 = pEVar22;
      if (uVar18 == 0) {
        pEVar20 = (Elf32_Ehdr *)0x0;
      }
      uVar47 = (uVar47 - 1) - uVar18;
      pEVar32 = (Elf32_Ehdr *)((int)pEVar32 + (-(int)pEVar20 - (int)pEVar22));
      lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);
    }
    pEVar29 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);
    pEVar20 = (Elf32_Ehdr *)lVar2;
    pEVar32 = (Elf32_Ehdr *)(&pEVar29->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);
    uVar18 = uVar47;
    if (((pEVar32 < pEVar29) && (uVar18 = uVar47 - 1, pEVar22 <= pEVar32)) &&
       ((pEVar22 < pEVar32 || (in_t1 <= pEVar20)))) {
      uVar18 = uVar47 - 2;
    }
    *(uint *)(puVar39 + -0x44) = uVar18;
    pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 4);
    pEVar32 = pEVar29;
    if ((int)pEVar29 < 0) {
      pEVar32 = (Elf32_Ehdr *)-(int)pEVar29;
    }
    pEVar22 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 8);
    if ((int)pEVar32 <= (int)pEVar34) {
      if (pEVar29 != (Elf32_Ehdr *)0x0) {
        *(Elf32_Ehdr **)(puVar39 + -100) = pEVar22;
        *(uint *)(puVar39 + -0x70) = *(int *)(puVar39 + -0x50) + 4U;
        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar39 + -0x50) + 4U < 0x7f01);
        goto LAB_000317f8;
      }
LAB_000316f4:
      ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);
      *(undefined4 *)(*(int *)(puVar39 + -0x54) + 4) = 0;
      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00031764;
      pcVar43 = *(code **)(puVar37 + -0x7a28);
LAB_00031708:
      (*pcVar43)();
      puVar37 = *(undefined **)(puVar39 + -0x90);
      goto LAB_00031764;
    }
    uVar18 = *(int *)(puVar39 + -0x50) + 4;
    pEVar30 = (Elf32_Ehdr *)(uint)(uVar18 < 0x7f01);
    *(uint *)(puVar39 + -0x70) = uVar18;
    if (pEVar30 == (Elf32_Ehdr *)0x0) {
      pcVar43 = *(code **)(puVar37 + -0x7d50);
      *(Elf32_Ehdr **)(puVar39 + -0x60) = pEVar32;
      pmVar6 = (mp_ptr)(*pcVar43)(puVar39 + -0x40,uVar18);
      pEVar32 = *(Elf32_Ehdr **)(puVar39 + -0x60);
      *(mp_ptr *)(puVar39 + -100) = pmVar6;
    }
    else {
      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);
      pmVar6 = (mp_ptr)(puVar3 + iVar14 + 0x18);
      *(mp_ptr *)(puVar39 + -100) = pmVar6;
      puVar3 = puVar3 + iVar14;
    }
    pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);
    *(undefined1 **)(puVar3 + 0x14) = puVar39 + -0x44;
    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;
    pEVar20 = pEVar22;
    reduce(pmVar6,(mp_srcptr)pEVar22,(mp_size_t)pEVar32,pmVar27,*(mp_size_t *)(puVar3 + 0x10),
           *(gmp_pi1_t **)(puVar3 + 0x14));
    puVar37 = *(undefined **)(puVar39 + -0x90);
    pEVar32 = pEVar34;
    if (*(int *)((int)pmVar6 + *(int *)(puVar39 + -0x50)) == 0) {
      iVar14 = (int)pmVar6 + *(int *)(puVar39 + -0x70);
      do {
        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);
        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;
        piVar7 = (int *)(iVar14 + -8);
        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);
        iVar14 = iVar14 + -4;
      } while (*piVar7 == 0);
    }
LAB_000317f8:
    if ((int)pEVar34 * 8 + 4U < 0x7f01) {
      iVar14 = -((int)pEVar34 * 8 + 8);
      pEVar22 = (Elf32_Ehdr *)(puVar3 + iVar14 + 0x18);
      puVar3 = puVar3 + iVar14;
    }
    else {
      pEVar22 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);
      puVar37 = *(undefined **)(puVar39 + -0x90);
    }
    if (pEVar30 == (Elf32_Ehdr *)0x0) {
      dinv = (gmp_pi1_t *)
             (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40,*(undefined4 *)(puVar39 + -0x70));
      puVar37 = *(undefined **)(puVar39 + -0x90);
    }
    else {
      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8) + 0x18);
      puVar3 = puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8);
    }
    if (*(int *)(puVar39 + -0x50) + 8U < 0x7f01) {
      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xfU & 0xfffffff8);
      *(undefined1 **)(puVar39 + -0x74) = puVar3 + iVar14 + 0x18;
      puVar3 = puVar3 + iVar14;
    }
    else {
      uVar44 = (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);
      puVar37 = *(undefined **)(puVar39 + -0x90);
      *(undefined4 *)(puVar39 + -0x74) = uVar44;
    }
    puVar4 = *(undefined4 **)(puVar39 + -100);
    pwVar9 = (word *)((int)&pEVar32[-1].e_shstrndx + 1);
    pEVar20 = (Elf32_Ehdr *)*puVar4;
    pEVar30 = (Elf32_Ehdr *)dinv;
    pwVar8 = pwVar9;
    if (pwVar9 != (word *)0x0) {
      do {
        puVar4 = puVar4 + 1;
        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;
        pwVar8 = (word *)((int)pwVar8 + -1);
        pEVar20 = (Elf32_Ehdr *)*puVar4;
        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;
      } while (pwVar8 != (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]);
    iVar14 = 0x1f - (int)tp;
    an = (mp_size_t)pEVar32;
    if (iVar14 == 0) {
      if (pEVar34 == pEVar32) {
        pcVar13 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar34 * 4 + -1;
        iVar14 = *(int *)(puVar39 + -0x4c) + (int)pEVar34 * 4;
        do {
          pEVar20 = *(Elf32_Ehdr **)(iVar14 + -4);
          pwVar9 = (word *)((int)pwVar9 + -1);
          if (*(Elf32_Ehdr **)(pcVar13 + -4) != pEVar20) {
            pcVar43 = *(code **)(puVar37 + -0x7b2c);
            if (*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20) goto LAB_000318d0;
            goto LAB_00031d88;
          }
          pcVar13 = pcVar13 + -4;
          iVar14 = iVar14 + -4;
        } while (pwVar9 != (word *)0xffffffff);
        pcVar43 = *(code **)(puVar37 + -0x7b2c);
LAB_00031d88:
        pEVar20 = (Elf32_Ehdr *)dinv;
        (*pcVar43)(dinv,dinv,*(undefined4 *)(puVar39 + -0x4c),pEVar32);
        puVar37 = *(undefined **)(puVar39 + -0x90);
      }
    }
    else {
      puVar41 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);
      *(mp_srcptr *)(puVar39 + 8) = mp;
      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);
      *(byte **)(puVar39 + -0x84) =
           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50);
      *(undefined1 **)(puVar39 + -0x7c) = puVar39 + -0x44;
      *(int *)(puVar39 + -0x80) = *(int *)(puVar37 + -0x7fcc) + 0xf30;
      *(undefined4 *)(puVar39 + -0x60) = 0x3fffffff;
      do {
        pEVar20 = (Elf32_Ehdr *)dinv;
        (**(code **)(puVar37 + -0x7cac))(pEVar22,dinv,an);
        an = an * 2 - (uint)(*(int *)(pEVar22->e_ident_magic_str +
                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0);
        puVar37 = *(undefined **)(puVar39 + -0x90);
        if (an < (int)pEVar34) {
          pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);
          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {
            uVar24._0_1_ = pEVar22->e_ident_magic_num;
            uVar24._1_1_ = pEVar22->e_ident_magic_str[0];
            uVar24._2_1_ = pEVar22->e_ident_magic_str[1];
            uVar24._3_1_ = pEVar22->e_ident_magic_str[2];
            pEVar30 = (Elf32_Ehdr *)dinv;
            if (pwVar9 != (word *)0x0) {
              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);
                pwVar9 = (word *)((int)pwVar9 + -1);
                uVar24 = *(undefined4 *)pbVar10;
                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;
                pbVar10 = (byte *)pEVar20;
              } while (pwVar9 != (word *)0x0);
              pEVar30 = (Elf32_Ehdr *)
                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +
                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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;
          }
          pcVar43 = *(code **)(puVar37 + -0x7d8c);
        }
        else {
          uVar44 = *(undefined4 *)(puVar39 + -0x4c);
          pcVar43 = *(code **)(puVar39 + -0x80);
          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);
          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);
          (*pcVar43)(pEVar22,an,uVar44,pEVar34);
          puVar37 = *(undefined **)(puVar39 + -0x90);
          uVar44._0_1_ = pEVar22->e_ident_magic_num;
          uVar44._1_1_ = pEVar22->e_ident_magic_str[0];
          uVar44._2_1_ = pEVar22->e_ident_magic_str[1];
          uVar44._3_1_ = pEVar22->e_ident_magic_str[2];
          if (puVar41 == (undefined1 *)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 {
            pwVar9 = (word *)puVar41;
            pEVar30 = (Elf32_Ehdr *)dinv;
            pbVar10 = &pEVar22->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)(pbVar10 + 4);
              pwVar9 = (word *)((int)pwVar9 + -1);
              uVar44 = *(undefined4 *)pbVar10;
              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;
              pbVar10 = (byte *)an;
            } while (pwVar9 != (word *)0x0);
            **(undefined4 **)(puVar39 + -0x84) = uVar44;
          }
          pcVar43 = *(code **)(puVar37 + -0x7d8c);
          pEVar20 = (Elf32_Ehdr *)an;
          an = (mp_size_t)pEVar34;
        }
        if ((int)tp < 0) {
          uVar44 = *(undefined4 *)(puVar39 + -100);
          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;
          pEVar20 = (Elf32_Ehdr *)dinv;
          (*pcVar43)(pEVar22,dinv,an,uVar44);
          an = (int)pEVar32 +
               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -
               (uint)(*(int *)(pEVar22->e_ident_magic_str +
                              (int)(&pEVar32->e_ident_magic_num +
                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +
                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0));
          puVar37 = *(undefined **)(puVar39 + -0x90);
          if (an < (int)pEVar34) {
            pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);
            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {
              uVar25._0_1_ = pEVar22->e_ident_magic_num;
              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];
              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];
              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];
              if (pwVar9 == (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;
                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);
                  pwVar9 = (word *)((int)pwVar9 + -1);
                  uVar25 = *(undefined4 *)pbVar10;
                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;
                  pbVar10 = (byte *)pEVar20;
                } while (pwVar9 != (word *)0x0);
                *(undefined4 *)
                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +
                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)
                     = uVar25;
              }
            }
          }
          else {
            uVar44 = *(undefined4 *)(puVar39 + -0x4c);
            pcVar43 = *(code **)(puVar39 + -0x80);
            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);
            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);
            (*pcVar43)(pEVar22,an,uVar44,pEVar34);
            puVar37 = *(undefined **)(puVar39 + -0x90);
            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;
            pwVar9 = (word *)puVar41;
            pEVar29 = (Elf32_Ehdr *)dinv;
            pEVar30 = pEVar22;
            if (puVar41 == (undefined1 *)0x0) {
              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;
              an = (mp_size_t)pEVar34;
            }
            else {
              do {
                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;
                pwVar9 = (word *)((int)pwVar9 + -1);
                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;
                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;
                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;
              } while (pwVar9 != (word *)0x0);
              **(undefined4 **)(puVar39 + -0x84) = pEVar20;
              an = (mp_size_t)pEVar34;
            }
          }
        }
        iVar14 = iVar14 + -1;
        tp = (mp_ptr)((int)tp << 1);
      } while (iVar14 != 0);
      mp = *(mp_srcptr *)(puVar39 + 8);
      pEVar32 = (Elf32_Ehdr *)puVar41;
    }
LAB_000318d0:
    pEVar30 = (Elf32_Ehdr *)0x0;
    pEVar29 = *(Elf32_Ehdr **)(puVar39 + -0x6c);
    if (pEVar29 == (Elf32_Ehdr *)0x0) {
LAB_000318dc:
      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {
        pcVar13 = ((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) {
            pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);
            piVar7 = *(int **)(puVar39 + -0x54);
            if ((pEVar31 == (Elf32_Ehdr *)0x0) ||
               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))
            goto LAB_00031934;
            goto LAB_00031a08;
          }
          piVar7 = (int *)(pcVar13 + -8);
          pcVar13 = pcVar13 + -4;
        } while (*piVar7 == 0);
      }
      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);
      piVar7 = *(int **)(puVar39 + -0x54);
      if ((pEVar31 == (Elf32_Ehdr *)0x0) ||
         (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4))) {
LAB_00031934:
        pcVar43 = *(code **)(puVar37 + -0x7a80);
        if (*piVar7 < an) goto LAB_00031fa0;
LAB_00031944:
        pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);
        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;
        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031994;
      }
      else {
        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031a04;
        tp = *(mp_ptr *)(*(int *)(puVar39 + -0x68) + 8);
        pEVar20 = (Elf32_Ehdr *)tp;
        iVar14 = (**(code **)(puVar37 + -0x7b2c))(dinv,tp,dinv,an);
        puVar37 = *(undefined **)(puVar39 + -0x90);
        pEVar30 = (Elf32_Ehdr *)an;
        if (iVar14 == 0) {
LAB_00031fd0:
          an = (mp_size_t)pEVar30;
          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30)) goto LAB_00031c50;
          pEVar20 = (Elf32_Ehdr *)
                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70));
          pbVar11 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1);
          pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1);
          do {
            uVar44 = *(undefined4 *)pbVar11;
            pbVar11 = pbVar11 + 4;
            *(undefined4 *)pbVar10 = uVar44;
            pbVar10 = pbVar10 + 4;
          } while (pEVar20 != (Elf32_Ehdr *)pbVar11);
          iVar14 = *(int *)(puVar39 + -0x50);
        }
        else {
          pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str;
          if (an < (int)pEVar34) {
            pEVar20 = (Elf32_Ehdr *)(an * 4);
            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);
            iVar14 = *(int *)pbVar10;
            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;
            if (iVar14 == 0) {
              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;
              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;
              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);
              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)
              ;
              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);
              iVar14 = *(int *)pbVar11;
              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;
              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);
              while (iVar14 == 0) {
                an = (mp_size_t)pEVar30;
                if (pEVar34 == pEVar30) goto LAB_00031c50;
                iVar14 = *(int *)(pbVar10 + 8);
                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;
                pbVar10 = pbVar10 + 4;
                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);
                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;
                pbVar11 = pbVar11 + 4;
              }
            }
            goto LAB_00031fd0;
          }
LAB_00031c50:
          iVar14 = *(int *)(puVar39 + -0x50);
        }
        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14);
        iVar14._0_1_ = pEVar30->e_ident_magic_num;
        iVar14._1_1_ = pEVar30->e_ident_magic_str[0];
        iVar14._2_1_ = pEVar30->e_ident_magic_str[1];
        iVar14._3_1_ = pEVar30->e_ident_magic_str[2];
        if (iVar14 == 0) {
          iVar14 = *(int *)(puVar39 + -0x78);
          pbVar10 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x70);
          do {
            iVar14 = iVar14 + -1;
            if (iVar14 == 0) {
              piVar7 = *(int **)(puVar39 + -0x54);
              goto LAB_00031a08;
            }
            piVar7 = (int *)(pbVar10 + -8);
            pbVar10 = pbVar10 + -4;
          } while (*piVar7 == 0);
          *(int *)(puVar39 + -0x78) = iVar14;
        }
        an = *(mp_size_t *)(puVar39 + -0x78);
        if (**(int **)(puVar39 + -0x54) < an) {
          an = *(mp_size_t *)(puVar39 + -0x78);
          pcVar43 = *(code **)(puVar37 + -0x7a80);
LAB_00031fa0:
          pEVar20 = (Elf32_Ehdr *)an;
          (*pcVar43)(*(undefined4 *)(puVar39 + -0x54));
          puVar37 = *(undefined **)(puVar39 + -0x90);
          goto LAB_00031944;
        }
        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;
      }
      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);
      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);
      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;
      puVar23 = *(undefined4 **)(*(int *)(puVar39 + -0x54) + 8);
      puVar4 = puVar23;
      pEVar29 = (Elf32_Ehdr *)dinv;
      if (pwVar9 != (word *)0x0) {
        do {
          *puVar4 = pEVar20;
          pwVar9 = (word *)((int)pwVar9 + -1);
          pEVar20 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;
          puVar4 = puVar4 + 1;
          pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;
        } while (pwVar9 != (word *)0x0);
        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);
      }
      *puVar23 = pEVar20;
    }
    else {
      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar22,dinv,an,pEVar29);
      iVar42 = *(int *)(puVar39 + -0x90);
      iVar14 = an * 4;
      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));
      *(int *)(pEVar22->e_ident_magic_str + iVar14 + -1) = iVar15;
      tp = (mp_ptr)pEVar29;
      if ((int)pEVar34 <= an) {
        pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);
        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);
        *(undefined1 **)(puVar3 + 0x10) = puVar39 + -0x44;
        mod((mp_ptr)pEVar22,an,pmVar27,(mp_size_t)pEVar34,*(gmp_pi1_t **)(puVar3 + 0x10),
            *(mp_ptr *)(puVar3 + 0x14));
        pwVar9 = (word *)((int)&pEVar34[-1].e_shstrndx + 1);
        iVar42 = *(int *)(puVar39 + -0x90);
        uVar17._0_1_ = pEVar22->e_ident_magic_num;
        uVar17._1_1_ = pEVar22->e_ident_magic_str[0];
        uVar17._2_1_ = pEVar22->e_ident_magic_str[1];
        uVar17._3_1_ = pEVar22->e_ident_magic_str[2];
        pEVar29 = (Elf32_Ehdr *)dinv;
        pEVar20 = pEVar22;
        if (pwVar9 == (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)pEVar34;
        }
        else {
          do {
            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);
            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);
            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);
            pEVar29->e_ident_magic_str[2] = (char)uVar17;
            pwVar9 = (word *)((int)pwVar9 + -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;
            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;
            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;
          } while (pwVar9 != (word *)0x0);
          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)) =
               uVar17;
          an = (mp_size_t)pEVar34;
        }
LAB_00031de0:
        pEVar20 = (Elf32_Ehdr *)dinv;
        (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar39 + -0x6c));
        puVar37 = *(undefined **)(puVar39 + -0x90);
        goto LAB_000318dc;
      }
      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);
      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {
        uVar21._0_1_ = pEVar22->e_ident_magic_num;
        uVar21._1_1_ = pEVar22->e_ident_magic_str[0];
        uVar21._2_1_ = pEVar22->e_ident_magic_str[1];
        uVar21._3_1_ = pEVar22->e_ident_magic_str[2];
        pEVar29 = (Elf32_Ehdr *)dinv;
        pEVar20 = pEVar22;
        if (pwVar9 != (word *)0x0) {
          do {
            pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);
            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);
            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);
            pEVar29->e_ident_magic_str[2] = (char)uVar21;
            pwVar9 = (word *)((int)pwVar9 + -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;
            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;
            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;
          } while (pwVar9 != (word *)0x0);
          pEVar29 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);
        }
        pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);
        pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);
        pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);
        pEVar29->e_ident_magic_str[2] = (char)uVar21;
        goto LAB_00031de0;
      }
      pEVar20 = (Elf32_Ehdr *)dinv;
      (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,0,pEVar29);
      puVar37 = *(undefined **)(puVar39 + -0x90);
      pEVar31 = (Elf32_Ehdr *)mp;
LAB_00031a04:
      piVar7 = *(int **)(puVar39 + -0x54);
LAB_00031a08:
      if (*piVar7 < 0) {
        tp = *(mp_ptr *)(puVar39 + -0x54);
        pEVar20 = (Elf32_Ehdr *)0x0;
        (**(code **)(puVar37 + -0x7a80))(tp);
        puVar37 = *(undefined **)(puVar39 + -0x90);
        ((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 *)(puVar39 + -0x54) + 4) = 0;
      }
    }
LAB_00031994:
    ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);
    piVar7 = *(int **)(puVar39 + -0x58);
    if (ptVar16 != (tmp_reentrant_t *)0x0) {
      pcVar43 = *(code **)(puVar37 + -0x7a28);
      goto LAB_00031708;
    }
  }
  else {
    pcVar43 = *(code **)(puVar36 + 0x6c110);
    *(mp_srcptr *)(puVar39 + -0x3c) = mp;
    *(undefined4 *)(puVar39 + -0x34) = 1;
    *(undefined1 **)(puVar39 + -0x30) = puVar39 + -0x3c;
    (*pcVar43)();
    puVar37 = *(undefined **)(puVar39 + -0x90);
LAB_00031764:
    piVar7 = *(int **)(puVar39 + -0x58);
  }
  if (*(int *)(puVar39 + -0x2c) == *piVar7) {
    return;
  }
  pcVar43 = *(code **)(puVar37 + -0x7b70);
  uVar44 = 0x3206c;
  (*pcVar43)();
  pcVar38 = pcVar43 + 0x72fd0;
  puVar41 = puVar3 + -0x38;
  *(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar31;
  piVar7 = *(int **)(pcVar43 + 0x6b4d0);
  *(undefined1 **)(puVar3 + -8) = puVar39 + -0xa8;
  *(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) = *piVar7;
  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar20) {
    if ((int)ptVar16->next < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {
      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar43 + 0x6b550))();
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
    else {
      pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;
    }
    iVar14 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);
    pcVar38 = *(code **)(puVar3 + -0x28);
    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);
    uVar18 = 8;
    do {
      uVar47 = uVar18;
      pEVar30 = (Elf32_Ehdr *)*puVar4;
      puVar4 = puVar4 + -1;
      uVar18 = uVar47 - 1;
    } while (pEVar30 < pEVar20);
    if (uVar47 == 0) {
      trap(7);
    }
    uVar18 = ((iVar14 + 1U) / uVar47 + 1) * 4;
    *(undefined4 *)(puVar3 + -0x20) = 0;
    if (uVar18 < 0x7f01) {
      iVar14 = -(uVar18 + 7 & 0xfffffff8);
      puVar41 = puVar3 + iVar14 + -0x38;
      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar14 + -0x28);
    }
    else {
      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
    iVar15 = 0;
    uVar47 = 1;
    iVar14 = 0;
    uVar18 = 0;
    ptVar33 = (tmp_reentrant_t *)0x6;
    do {
      uVar48 = uVar18 + 1;
      iVar42 = iVar14;
      ptVar35 = ptVar33;
      if ((uVar47 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {
        ptVar35 = (tmp_reentrant_t *)((uVar48 & 1) + 1 + uVar48 * 3);
        if ((int)(ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20) == 0) {
          ptVar35 = (tmp_reentrant_t *)((int)ptVar33 * (int)ptVar35);
        }
        else {
          iVar42 = iVar14 + 1;
          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1) = ptVar33;
        }
      }
      uVar47 = uVar47 * 2 - ((int)uVar47 >> 0x1f);
      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;
      iVar15 = iVar15 + (uVar47 & 1);
      iVar14 = iVar42;
      uVar18 = uVar48;
      ptVar33 = ptVar35;
    } while (bVar1);
    if (iVar42 == 0) {
      (ptVar16[1].next)->next = ptVar35;
      ptVar16->size = 1;
    }
    else {
      pcVar43 = *(code **)(pcVar38 + -0x7dbc);
      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar42 * 4 + -1) = ptVar35;
      (*pcVar43)(ptVar16,pEVar30,iVar42 + 1);
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
    ptVar33 = *(tmp_reentrant_t **)(puVar3 + -0x20);
    if (ptVar33 != (tmp_reentrant_t *)0x0) {
      (**(code **)(pcVar38 + -0x7a28))();
      pcVar38 = *(code **)(puVar3 + -0x28);
    }
  }
  else {
    pEVar29 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar43 + 0x6affc) + 0x3750);
    (ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar29->e_ident_magic_num;
    ptVar16->size = 1;
    ptVar33 = ptVar16;
    pEVar30 = pEVar20;
    pEVar20 = pEVar29;
    puVar41 = puVar3 + -0x38;
  }
  if (*(int *)(puVar3 + -0x1c) == *piVar7) {
    return;
  }
  pcVar43 = *(code **)(pcVar38 + -0x7b70);
  pcVar45 = __gmpz_probab_prime_p;
  (*pcVar43)();
  pcVar38 = *(code **)(pcVar43 + 0x6ae78);
  *(tmp_reentrant_t **)(puVar41 + -0x24) = ptVar16;
  *(int **)(puVar41 + -0x20) = piVar7;
  piVar7 = *(int **)(pcVar43 + 0x6b270);
  *(Elf32_Ehdr **)(puVar41 + -0x18) = pEVar22;
  *(Elf32_Ehdr **)(puVar41 + -0x1c) = pEVar32;
  pEVar22 = (Elf32_Ehdr *)0xf4240;
  *(code **)(puVar41 + -0x88) = pcVar43 + 0x72d70;
  *(Elf32_Ehdr **)(puVar41 + -0x10) = pEVar34;
  *(mp_size_t *)(puVar41 + -0x14) = an;
  *(Elf32_Ehdr **)(puVar41 + -0x28) = pEVar20;
  *(code **)(puVar41 + -4) = pcVar45;
  *(undefined1 **)(puVar41 + -8) = puVar3 + -0x38;
  *(gmp_pi1_t **)(puVar41 + -0xc) = dinv;
  *(int *)(puVar41 + -0x2c) = *piVar7;
  iVar14 = (*pcVar38)();
  ptVar35 = ptVar33[1].next;
  iVar15 = *(int *)(puVar41 + -0x88);
  pEVar34 = (Elf32_Ehdr *)ptVar33->size;
  ptVar16 = ptVar35->next;
  if (iVar14 < 1) {
    pEVar22 = (Elf32_Ehdr *)0xf4240;
    iVar14 = (**(code **)(iVar15 + -0x7ab4))(ptVar33);
    iVar15 = *(int *)(puVar41 + -0x88);
    if (iVar14 < 1) {
      if ((pEVar34 != (Elf32_Ehdr *)0x0) &&
         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {
        uVar47 = 3;
        while (uVar18 != 0) {
          if (uVar47 == 0) {
            trap(7);
          }
          uVar18 = (uint)ptVar16 % uVar47;
          if ((uint)ptVar16 / uVar47 < uVar47) break;
          uVar47 = uVar47 + 2;
        }
      }
      goto LAB_00032354;
    }
    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;
    *(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar35;
    ptVar33 = (tmp_reentrant_t *)(puVar41 + -0x74);
    *(Elf32_Ehdr **)(puVar41 + -0x70) = pEVar34;
  }
  if ((pEVar34 != (Elf32_Ehdr *)0x0) && (uVar18 = (uint)ptVar16 & 1, uVar18 != 0)) {
    pEVar22 = pEVar34;
    if ((int)pEVar34 < 10) {
      uVar47 = (**(code **)(iVar15 + -0x7c24))(ptVar35,pEVar34,0xc0cfd797,0x53e5645c);
      iVar15 = *(int *)(puVar41 + -0x88);
    }
    else {
      uVar47 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,0xc0cfd797);
      iVar15 = *(int *)(puVar41 + -0x88);
    }
    if ((((((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)) &&
          (uVar47 != (uVar47 / 7) * 7)) &&
         ((uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd)))) &&
        ((uVar47 != (uVar47 / 0x11) * 0x11 &&
         ((uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17)))))) &&
       (uVar47 != (uVar47 / 0x1d) * 0x1d)) {
      uVar47 = (**(code **)(iVar15 + -0x7f14))(ptVar33,2);
      iVar15 = *(int *)(puVar41 + -0x88);
      if (0x1f < uVar47) {
        iVar42 = 0;
        iVar14 = 0;
        uVar48 = 0x1f;
        do {
          uVar12 = 3;
          do {
            if (uVar12 == 0) {
              trap(7);
            }
            uVar46 = uVar48 % uVar12;
            if (uVar48 / uVar12 < uVar12) {
              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {
                iVar28 = iVar14 + 1;
                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);
              }
              else {
                *(uint *)(puVar41 + -0x7c) = uVar47;
                *(int *)(puVar41 + -0x80) = iVar14;
                if ((int)pEVar34 < 10) {
                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);
                  iVar15 = *(int *)(puVar41 + -0x88);
                  iVar14 = *(int *)(puVar41 + -0x80);
                  uVar47 = *(uint *)(puVar41 + -0x7c);
                }
                else {
                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);
                  iVar15 = *(int *)(puVar41 + -0x88);
                  uVar47 = *(uint *)(puVar41 + -0x7c);
                  iVar14 = *(int *)(puVar41 + -0x80);
                }
                uVar18 = uVar48;
                if (iVar14 + -1 != -1) {
                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {
                    trap(7);
                  }
                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {
                    if (iVar14 + -2 == -1) goto LAB_0003295c;
                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {
                      trap(7);
                    }
                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {
                      if (iVar14 + -3 == -1) goto LAB_0003295c;
                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {
                        trap(7);
                      }
                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {
                        if (iVar14 + -4 == -1) goto LAB_0003295c;
                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {
                          trap(7);
                        }
                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {
                          if (iVar14 + -5 == -1) goto LAB_0003295c;
                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {
                            trap(7);
                          }
                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {
                            if (iVar14 + -6 == -1) goto LAB_0003295c;
                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {
                              trap(7);
                            }
                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {
                              if (iVar14 + -7 == -1) goto LAB_0003295c;
                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {
                                trap(7);
                              }
                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {
                                if (iVar14 + -8 == -1) goto LAB_0003295c;
                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {
                                  trap(7);
                                }
                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {
                                  if (iVar14 + -9 == -1) goto LAB_0003295c;
                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {
                                    trap(7);
                                  }
                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)
                                  {
                                    if (iVar14 + -10 == -1) goto LAB_0003295c;
                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {
                                      trap(7);
                                    }
                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=
                                        0) {
                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;
                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {
                                        trap(7);
                                      }
                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)
                                          != 0) {
                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;
                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {
                                          trap(7);
                                        }
                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68
                                                              ) != 0) {
                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;
                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)
                                          {
                                            trap(7);
                                          }
                                          if (uVar12 % *(uint *)(puVar41 +
                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {
                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;
                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==
                                                0) {
                                              trap(7);
                                            }
                                            if (uVar12 % *(uint *)(puVar41 +
                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)
                                            {
                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;
                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)
                                                  == 0) {
                                                trap(7);
                                              }
                                              iVar28 = 1;
                                              if (uVar12 % *(uint *)(puVar41 +
                                                                    (iVar14 + -0xf) * 4 + -0x68) !=
                                                  0) {
                                                iVar14 = 0;
                                                goto LAB_00032678;
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                  pEVar22 = pEVar34;
                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);
                  iVar15 = *(int *)(puVar41 + -0x88);
                  if (iVar14 == 0) goto LAB_00032354;
                  (**(code **)(iVar15 + -0x7c20))
                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,
                             *(int *)(iVar15 + -0x7fd4) + 0x3770);
                }
LAB_0003295c:
                iVar28 = 1;
                iVar14 = 0;
              }
LAB_00032678:
              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;
              break;
            }
            uVar12 = uVar12 + 2;
            iVar28 = iVar14;
          } while (uVar46 != 0);
          uVar12 = uVar48 + 2;
          iVar42 = (uint)(uVar12 < uVar48) + iVar42;
          iVar14 = iVar28;
          uVar48 = uVar12;
        } while (uVar12 < uVar47);
      }
      (**(code **)(iVar15 + -0x7d48))(ptVar33);
      iVar15 = *(int *)(puVar41 + -0x88);
      pEVar22 = pEVar30;
    }
  }
LAB_00032354:
  iVar14 = *(int *)(puVar41 + -0x2c);
  if (iVar14 == *piVar7) {
    return;
  }
  pcVar43 = *(code **)(iVar15 + -0x7b70);
  uVar44 = 0x32974;
  (*pcVar43)();
  pcVar38 = pcVar43 + 0x726c0;
  pcVar13 = *(char **)(pcVar43 + 0x6a808);
  *(int **)(puVar41 + -0xa0) = piVar7;
  *(Elf32_Ehdr **)(puVar41 + -0xa4) = pEVar34;
  *(code **)(puVar41 + -0xb0) = pcVar38;
  *(undefined4 *)(puVar41 + -0x9c) = uVar44;
  if (*pcVar13 == '\0') {
    pcVar38 = *(code **)(pcVar43 + 0x6ac84);
    uVar44 = *(undefined4 *)(pcVar43 + 0x6a8fc);
    *pcVar13 = '\x01';
    (*pcVar38)(uVar44);
    pcVar38 = *(code **)(puVar41 + -0xb0);
  }
  pEVar34 = pEVar22;
  if ((int)pEVar22 < 0) {
    pEVar34 = (Elf32_Ehdr *)-(int)pEVar22;
  }
  (**(code **)(pcVar38 + -0x7f7c))(iVar14,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);
  if ((int)pEVar22 < 0) {
    *(int *)(iVar14 + 4) = -*(int *)(iVar14 + 4);
  }
  return;
}



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

{
  bool bVar1;
  longlong lVar2;
  undefined1 *puVar3;
  undefined4 *puVar4;
  Elf32_Ehdr *pEVar5;
  int *piVar6;
  byte *pbVar7;
  uint uVar8;
  char *pcVar9;
  undefined1 *puVar10;
  int iVar11;
  byte *pbVar12;
  int iVar13;
  int *piVar14;
  undefined4 uVar15;
  int iVar16;
  uint uVar17;
  Elf32_Ehdr *pEVar18;
  undefined4 uVar19;
  Elf32_Ehdr *pEVar20;
  undefined4 *puVar21;
  undefined4 uVar22;
  undefined1 *puVar23;
  undefined4 uVar24;
  undefined4 uVar25;
  int iVar26;
  Elf32_Ehdr *in_t1;
  Elf32_Ehdr *pEVar27;
  uint in_t2;
  Elf32_Ehdr *in_t3;
  Elf32_Ehdr *pEVar28;
  Elf32_Ehdr *pEVar29;
  Elf32_Ehdr *pEVar30;
  int *piVar31;
  Elf32_Ehdr *pEVar32;
  uint *puVar33;
  undefined *puVar34;
  undefined *puVar35;
  code *pcVar36;
  undefined1 *puVar37;
  undefined1 *puVar38;
  code *pcVar39;
  code *pcVar40;
  uint uVar41;
  uint uVar42;
  uint uVar43;
  undefined8 uVar44;
  undefined1 auStack_58 [24];
  int *local_30;
  int local_2c;
  
  pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;
  puVar37 = auStack_58;
  pEVar32 = (Elf32_Ehdr *)((int)param_3 * 4);
  local_30 = (int *)0x0;
  local_2c = *(int *)PTR___stack_chk_guard_0009d540;
  if (pEVar32 < (Elf32_Ehdr *)0x7f01) {
    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);
    puVar37 = auStack_58 + iVar11;
    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);
  }
  else {
    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);
  }
  uVar17 = (int)((int)param_3 + (1 - (int)param_5)) * 4;
  if (uVar17 < 0x7f01) {
    iVar11 = -(uVar17 + 7 & 0xfffffff8);
    puVar3 = puVar37 + iVar11 + 0x18;
    puVar37 = puVar37 + iVar11;
  }
  else {
    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
  }
  if (param_3 != (Elf32_Ehdr *)0x0) {
    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
    uVar25 = *param_2;
    if (puVar10 == (undefined1 *)0x0) {
      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);
      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);
      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);
      pEVar28->e_ident_magic_str[2] = (char)uVar25;
      pEVar32 = pEVar28;
    }
    else {
      pEVar30 = pEVar28;
      puVar4 = param_2 + 1;
      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;
        puVar10 = puVar10 + -1;
        uVar25 = *puVar4;
        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;
        puVar4 = puVar4 + 1;
      } while (puVar10 != (undefined1 *)0x0);
      pEVar32 = (Elf32_Ehdr *)
                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str
                );
      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);
      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);
      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);
      pEVar32->e_ident_magic_str[2] = (char)uVar25;
    }
  }
  *(undefined1 **)(puVar37 + 0x14) = puVar3;
  *(Elf32_Ehdr **)(puVar37 + 0x10) = param_6;
  pEVar18 = param_3;
  pEVar27 = param_5;
  FUN_00030f30(pEVar28);
  pEVar30 = param_5;
  if (param_5 != (Elf32_Ehdr *)0x0) {
    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);
    pEVar18 = *(Elf32_Ehdr **)pEVar28;
    pEVar5 = param_1;
    pEVar29 = pEVar28;
    if (puVar3 != (undefined1 *)0x0) {
      do {
        *(Elf32_Ehdr **)pEVar5 = pEVar18;
        puVar3 = puVar3 + -1;
        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;
        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;
        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;
      } while (puVar3 != (undefined1 *)0x0);
      pEVar30 = (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 = pEVar18;
  }
  piVar14 = local_30;
  if (local_30 != (int *)0x0) {
    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
  }
  if (local_2c == *(int *)pEVar20) {
    return *(int *)pEVar20;
  }
  pcVar39 = __gmpz_powm_ui;
  puVar34 = PTR___stack_chk_fail_0009d4d0;
  (*(code *)PTR___stack_chk_fail_0009d4d0)();
  puVar35 = puVar34 + 0x73c70;
  puVar4 = *(undefined4 **)(puVar34 + 0x6c170);
  puVar10 = puVar37 + -0xa8;
  puVar3 = puVar37 + -0xa8;
  puVar38 = puVar37 + -0xa8;
  *(undefined1 **)(puVar37 + -8) = auStack_58;
  *(undefined4 **)(puVar37 + -0x20) = param_2;
  *(code **)(puVar37 + -4) = pcVar39;
  *(undefined4 **)(puVar37 + -0x58) = puVar4;
  *(Elf32_Ehdr **)(puVar37 + -0xc) = param_6;
  *(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32;
  *(Elf32_Ehdr **)(puVar37 + -0x14) = param_3;
  *(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20;
  *(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30;
  *(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28;
  *(Elf32_Ehdr **)(puVar37 + -0x28) = param_1;
  *(undefined **)(puVar37 + -0x90) = puVar35;
  *(int **)(puVar37 + -0x54) = piVar14;
  *(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18;
  *(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27;
  *(undefined4 *)(puVar37 + -0x2c) = *puVar4;
  pEVar29 = param_4;
  if (param_4 < (Elf32_Ehdr *)0x14) {
    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;
    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;
    pEVar32 = pEVar5;
    if ((int)pEVar5 < 0) {
      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;
    }
    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;
    if (pEVar5 == (Elf32_Ehdr *)0x0) {
      pEVar20 = param_4;
      uVar44 = (**(code **)(puVar34 + 0x6c210))();
LAB_00031d4c:
      uVar17 = (uint)uVar44;
      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);
      puVar3 = puVar10;
    }
    else {
      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);
      if (param_4 == (Elf32_Ehdr *)0x0) {
        uVar17 = 1;
        if (pEVar32 == (Elf32_Ehdr *)0x1) {
          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);
        }
        piVar14 = *(int **)(puVar37 + -0x54);
        piVar14[1] = uVar17;
        *(undefined4 *)piVar14[2] = 1;
        puVar3 = puVar37 + -0xa8;
        goto LAB_00031764;
      }
      *(undefined4 *)(puVar37 + -0x40) = 0;
      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;
      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);
      if (pEVar20 < &Elf32_Ehdr_00010000) {
        iVar11 = 0x20;
        if ((Elf32_Ehdr *)0xff < pEVar20) {
          iVar11 = 0x18;
        }
        iVar13 = 9;
        if ((Elf32_Ehdr *)0xff >= pEVar20) {
          iVar13 = 1;
        }
      }
      else {
        iVar11 = 0x10;
        if ((Elf32_Ehdr *)0xffffff < pEVar20) {
          iVar11 = 8;
        }
        iVar13 = 0x19;
        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {
          iVar13 = 0x11;
        }
      }
      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);
      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];
      *(int *)(puVar37 + -0x6c) = iVar11;
      puVar10 = puVar37 + -0xa8;
      if (iVar11 != 0) {
        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {
          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);
          puVar38 = puVar37 + iVar11 + -0xa8;
          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);
        }
        else {
          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);
          puVar35 = *(undefined **)(puVar37 + -0x90);
        }
        (**(code **)(puVar35 + -0x7ad4))
                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)
                  );
        puVar35 = *(undefined **)(puVar37 + -0x90);
        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;
        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);
        puVar10 = puVar38;
      }
      if (pEVar32 == (Elf32_Ehdr *)0x1) {
        pEVar27 = (Elf32_Ehdr *)0x0;
      }
      else {
        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);
      }
      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);
      if (pEVar18 == (Elf32_Ehdr *)0x0) {
        trap(7);
      }
      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;
      in_t2 = (uint)pEVar20 & 0xffff;
      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);
      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);
      uVar17 = uVar42;
      in_t1 = pEVar27;
      puVar3 = puVar10;
      if (pEVar30 < in_t3) {
        pEVar30 = (Elf32_Ehdr *)
                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));
        uVar17 = uVar42 - 1;
        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))
        goto LAB_00031d4c;
      }
    }
    if (pEVar18 == (Elf32_Ehdr *)0x0) {
      trap(7);
    }
    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;
    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);
    uVar42 = uVar43;
    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&
       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <
         pEVar20 ||
        (uVar42 = uVar43 - 2,
        (Elf32_Ehdr *)(in_t2 * uVar43) <=
        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {
      uVar42 = uVar43 - 1;
    }
    uVar42 = uVar17 << 0x10 | uVar42;
    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);
    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);
    if (pEVar30 < in_t1) {
      uVar17 = pEVar30 < pEVar20 ^ 1;
      pEVar18 = pEVar20;
      if (uVar17 == 0) {
        pEVar18 = (Elf32_Ehdr *)0x0;
      }
      uVar42 = (uVar42 - 1) - uVar17;
      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));
      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);
    }
    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);
    pEVar18 = (Elf32_Ehdr *)lVar2;
    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));
    uVar17 = uVar42;
    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&
       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {
      uVar17 = uVar42 - 2;
    }
    *(uint *)(puVar37 + -0x44) = uVar17;
    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);
    pEVar30 = pEVar27;
    if ((int)pEVar27 < 0) {
      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;
    }
    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);
    if ((int)pEVar30 <= (int)pEVar32) {
      if (pEVar27 != (Elf32_Ehdr *)0x0) {
        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;
        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;
        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);
        goto LAB_000317f8;
      }
LAB_000316f4:
      piVar14 = *(int **)(puVar37 + -0x40);
      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;
      if (piVar14 == (int *)0x0) goto LAB_00031764;
      pcVar39 = *(code **)(puVar35 + -0x7a28);
LAB_00031708:
      (*pcVar39)();
      puVar35 = *(undefined **)(puVar37 + -0x90);
      goto LAB_00031764;
    }
    uVar17 = *(int *)(puVar37 + -0x50) + 4;
    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);
    *(uint *)(puVar37 + -0x70) = uVar17;
    if (pEVar28 == (Elf32_Ehdr *)0x0) {
      pcVar39 = *(code **)(puVar35 + -0x7d50);
      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;
      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);
      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);
      *(undefined1 **)(puVar37 + -100) = puVar10;
    }
    else {
      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);
      puVar10 = puVar3 + iVar11 + 0x18;
      *(undefined1 **)(puVar37 + -100) = puVar10;
      puVar3 = puVar3 + iVar11;
    }
    uVar25 = *(undefined4 *)(puVar37 + -0x4c);
    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;
    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;
    pEVar18 = pEVar20;
    FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);
    puVar35 = *(undefined **)(puVar37 + -0x90);
    pEVar30 = pEVar32;
    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {
      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);
      do {
        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);
        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;
        piVar14 = (int *)(puVar10 + -8);
        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);
        puVar10 = puVar10 + -4;
      } while (*piVar14 == 0);
    }
LAB_000317f8:
    if ((int)pEVar32 * 8 + 4U < 0x7f01) {
      iVar11 = -((int)pEVar32 * 8 + 8);
      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);
      puVar3 = puVar3 + iVar11;
    }
    else {
      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);
      puVar35 = *(undefined **)(puVar37 + -0x90);
    }
    if (pEVar28 == (Elf32_Ehdr *)0x0) {
      param_6 = (Elf32_Ehdr *)
                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));
      puVar35 = *(undefined **)(puVar37 + -0x90);
    }
    else {
      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);
      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);
    }
    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {
      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);
      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;
      puVar3 = puVar3 + iVar11;
    }
    else {
      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);
      puVar35 = *(undefined **)(puVar37 + -0x90);
      *(undefined4 *)(puVar37 + -0x74) = uVar25;
    }
    puVar4 = *(undefined4 **)(puVar37 + -100);
    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);
    pEVar18 = (Elf32_Ehdr *)*puVar4;
    pEVar28 = param_6;
    puVar10 = puVar23;
    if (puVar23 != (undefined1 *)0x0) {
      do {
        puVar4 = puVar4 + 1;
        *(Elf32_Ehdr **)pEVar28 = pEVar18;
        puVar10 = puVar10 + -1;
        pEVar18 = (Elf32_Ehdr *)*puVar4;
        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;
      } while (puVar10 != (undefined1 *)0x0);
      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);
    }
    *(Elf32_Ehdr **)pEVar28 = pEVar18;
    param_1 = (Elf32_Ehdr *)
              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);
    iVar11 = 0x1f - (int)param_1;
    param_3 = pEVar30;
    if (iVar11 == 0) {
      if (pEVar32 == pEVar30) {
        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;
        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;
        do {
          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);
          puVar23 = puVar23 + -1;
          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {
            pcVar39 = *(code **)(puVar35 + -0x7b2c);
            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;
            goto LAB_000318d0;
          }
          pcVar9 = pcVar9 + -4;
          iVar11 = iVar11 + -4;
        } while (puVar23 != (undefined1 *)0xffffffff);
        pcVar39 = *(code **)(puVar35 + -0x7b2c);
LAB_00031d88:
        pEVar18 = param_6;
        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);
        puVar35 = *(undefined **)(puVar37 + -0x90);
      }
    }
    else {
      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);
      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;
      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);
      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;
      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;
      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;
      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;
      do {
        pEVar18 = param_6;
        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);
        param_3 = (Elf32_Ehdr *)
                  ((int)param_3 * 2 -
                  (uint)(*(int *)(pEVar20->e_ident_magic_str +
                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));
        puVar35 = *(undefined **)(puVar37 + -0x90);
        if ((int)param_3 < (int)pEVar32) {
          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
          if (param_3 != (Elf32_Ehdr *)0x0) {
            uVar22._0_1_ = pEVar20->e_ident_magic_num;
            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];
            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];
            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];
            pEVar27 = param_6;
            if (puVar10 != (undefined1 *)0x0) {
              pbVar12 = &pEVar20->e_ident_class;
              do {
                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);
                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);
                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);
                pEVar27->e_ident_magic_str[2] = (char)uVar22;
                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);
                puVar10 = puVar10 + -1;
                uVar22 = *(undefined4 *)pbVar12;
                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
                pbVar12 = (byte *)pEVar18;
              } while (puVar10 != (undefined1 *)0x0);
              pEVar27 = (Elf32_Ehdr *)
                        (param_6->e_ident_magic_str +
                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);
            }
            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);
            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);
            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);
            pEVar27->e_ident_magic_str[2] = (char)uVar22;
          }
          pcVar39 = *(code **)(puVar35 + -0x7d8c);
        }
        else {
          uVar25 = *(undefined4 *)(puVar37 + -0x4c);
          pcVar39 = *(code **)(puVar37 + -0x80);
          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);
          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);
          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);
          puVar35 = *(undefined **)(puVar37 + -0x90);
          uVar25._0_1_ = pEVar20->e_ident_magic_num;
          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];
          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];
          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];
          if (pEVar28 == (Elf32_Ehdr *)0x0) {
            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);
            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);
            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);
            param_6->e_ident_magic_str[2] = (char)uVar25;
          }
          else {
            pEVar18 = pEVar28;
            pEVar27 = param_6;
            pbVar12 = &pEVar20->e_ident_class;
            do {
              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);
              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);
              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);
              pEVar27->e_ident_magic_str[2] = (char)uVar25;
              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);
              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);
              uVar25 = *(undefined4 *)pbVar12;
              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
              pbVar12 = (byte *)param_3;
            } while (pEVar18 != (Elf32_Ehdr *)0x0);
            **(undefined4 **)(puVar37 + -0x84) = uVar25;
          }
          pcVar39 = *(code **)(puVar35 + -0x7d8c);
          pEVar18 = param_3;
          param_3 = pEVar32;
        }
        if ((int)param_1 < 0) {
          uVar25 = *(undefined4 *)(puVar37 + -100);
          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;
          pEVar18 = param_6;
          (*pcVar39)(pEVar20,param_6,param_3,uVar25);
          param_3 = (Elf32_Ehdr *)
                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +
                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +
                                    (int)(pEVar30->e_ident_magic_str +
                                          (int)(param_3->e_ident_magic_str + -2) +
                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));
          puVar35 = *(undefined **)(puVar37 + -0x90);
          if ((int)param_3 < (int)pEVar32) {
            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
            if (param_3 != (Elf32_Ehdr *)0x0) {
              uVar24._0_1_ = pEVar20->e_ident_magic_num;
              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];
              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];
              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];
              if (puVar10 == (undefined1 *)0x0) {
                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);
                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);
                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);
                param_6->e_ident_magic_str[2] = (char)uVar24;
              }
              else {
                pEVar27 = param_6;
                pbVar12 = &pEVar20->e_ident_class;
                do {
                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);
                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);
                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);
                  pEVar27->e_ident_magic_str[2] = (char)uVar24;
                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);
                  puVar10 = puVar10 + -1;
                  uVar24 = *(undefined4 *)pbVar12;
                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
                  pbVar12 = (byte *)pEVar18;
                } while (puVar10 != (undefined1 *)0x0);
                *(undefined4 *)
                 (param_6->e_ident_magic_str +
                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;
              }
            }
          }
          else {
            uVar25 = *(undefined4 *)(puVar37 + -0x4c);
            pcVar39 = *(code **)(puVar37 + -0x80);
            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);
            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);
            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);
            puVar35 = *(undefined **)(puVar37 + -0x90);
            pEVar18 = *(Elf32_Ehdr **)pEVar20;
            pEVar29 = pEVar28;
            pEVar5 = param_6;
            pEVar27 = pEVar20;
            if (pEVar28 == (Elf32_Ehdr *)0x0) {
              *(Elf32_Ehdr **)param_6 = pEVar18;
              param_3 = pEVar32;
            }
            else {
              do {
                *(Elf32_Ehdr **)pEVar5 = pEVar18;
                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);
                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;
                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;
                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
              } while (pEVar29 != (Elf32_Ehdr *)0x0);
              **(undefined4 **)(puVar37 + -0x84) = pEVar18;
              param_3 = pEVar32;
            }
          }
        }
        iVar11 = iVar11 + -1;
        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);
      } while (iVar11 != 0);
      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);
      pEVar30 = pEVar28;
    }
LAB_000318d0:
    pEVar28 = (Elf32_Ehdr *)0x0;
    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);
    if (pEVar27 == (Elf32_Ehdr *)0x0) {
LAB_000318dc:
      if ((0 < (int)param_3) &&
         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {
        pcVar9 = 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) {
            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);
            piVar14 = *(int **)(puVar37 + -0x54);
            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||
               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))
            goto LAB_00031934;
            goto LAB_00031a08;
          }
          piVar14 = (int *)(pcVar9 + -8);
          pcVar9 = pcVar9 + -4;
        } while (*piVar14 == 0);
      }
      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);
      piVar14 = *(int **)(puVar37 + -0x54);
      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||
         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {
LAB_00031934:
        pcVar39 = *(code **)(puVar35 + -0x7a80);
        if (*piVar14 < (int)param_3) goto LAB_00031fa0;
LAB_00031944:
        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);
        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;
        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;
      }
      else {
        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;
        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);
        pEVar18 = param_1;
        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);
        puVar35 = *(undefined **)(puVar37 + -0x90);
        pEVar28 = param_3;
        if (iVar11 == 0) {
LAB_00031fd0:
          param_3 = pEVar28;
          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;
          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);
          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);
          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);
          do {
            uVar25 = *(undefined4 *)pbVar7;
            pbVar7 = pbVar7 + 4;
            *(undefined4 *)pbVar12 = uVar25;
            pbVar12 = pbVar12 + 4;
          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);
          iVar11 = *(int *)(puVar37 + -0x50);
        }
        else {
          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;
          if ((int)param_3 < (int)pEVar32) {
            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);
            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);
            iVar11 = *(int *)pbVar12;
            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;
            if (iVar11 == 0) {
              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;
              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;
              pcVar9 = (char *)((int)pEVar18 + -1);
              pEVar18 = (Elf32_Ehdr *)
                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);
              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);
              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);
              *(int *)pEVar18 = iVar11 + -1;
              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);
              while (iVar11 == 0) {
                param_3 = pEVar28;
                if (pEVar32 == pEVar28) goto LAB_00031c50;
                iVar11 = *(int *)(pbVar12 + 8);
                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;
                pbVar12 = pbVar12 + 4;
                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);
                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;
                pbVar7 = pbVar7 + 4;
              }
            }
            goto LAB_00031fd0;
          }
LAB_00031c50:
          iVar11 = *(int *)(puVar37 + -0x50);
        }
        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);
        iVar11._0_1_ = pEVar28->e_ident_magic_num;
        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];
        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];
        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];
        if (iVar11 == 0) {
          iVar11 = *(int *)(puVar37 + -0x78);
          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;
          do {
            iVar11 = iVar11 + -1;
            if (iVar11 == 0) {
              piVar14 = *(int **)(puVar37 + -0x54);
              goto LAB_00031a08;
            }
            piVar14 = (int *)(pcVar9 + -8);
            pcVar9 = pcVar9 + -4;
          } while (*piVar14 == 0);
          *(int *)(puVar37 + -0x78) = iVar11;
        }
        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);
        if (**(int **)(puVar37 + -0x54) < (int)param_3) {
          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);
          pcVar39 = *(code **)(puVar35 + -0x7a80);
LAB_00031fa0:
          pEVar18 = param_3;
          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));
          puVar35 = *(undefined **)(puVar37 + -0x90);
          goto LAB_00031944;
        }
        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;
      }
      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);
      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
      pEVar18 = *(Elf32_Ehdr **)param_6;
      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);
      puVar4 = puVar21;
      pEVar27 = param_6;
      if (puVar10 != (undefined1 *)0x0) {
        do {
          *puVar4 = pEVar18;
          puVar10 = puVar10 + -1;
          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;
          puVar4 = puVar4 + 1;
          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
        } while (puVar10 != (undefined1 *)0x0);
        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);
      }
      *puVar21 = pEVar18;
    }
    else {
      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);
      iVar16 = *(int *)(puVar37 + -0x90);
      iVar11 = (int)param_3 * 4;
      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));
      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;
      param_1 = pEVar27;
      if ((int)pEVar32 <= (int)param_3) {
        uVar25 = *(undefined4 *)(puVar37 + -0x4c);
        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);
        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;
        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);
        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);
        iVar16 = *(int *)(puVar37 + -0x90);
        uVar15._0_1_ = pEVar20->e_ident_magic_num;
        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];
        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];
        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];
        pEVar27 = param_6;
        pEVar18 = pEVar20;
        if (puVar10 == (undefined1 *)0x0) {
          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);
          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);
          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);
          param_6->e_ident_magic_str[2] = (char)uVar15;
          param_3 = pEVar32;
        }
        else {
          do {
            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);
            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);
            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);
            pEVar27->e_ident_magic_str[2] = (char)uVar15;
            puVar10 = puVar10 + -1;
            uVar15._0_1_ = pEVar18->e_ident_class;
            uVar15._1_1_ = pEVar18->e_ident_data;
            uVar15._2_1_ = pEVar18->e_ident_version;
            uVar15._3_1_ = pEVar18->e_ident_osabi;
            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;
          } while (puVar10 != (undefined1 *)0x0);
          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;
          param_3 = pEVar32;
        }
LAB_00031de0:
        pEVar18 = param_6;
        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));
        puVar35 = *(undefined **)(puVar37 + -0x90);
        goto LAB_000318dc;
      }
      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
      if (param_3 != (Elf32_Ehdr *)0x0) {
        uVar19._0_1_ = pEVar20->e_ident_magic_num;
        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];
        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];
        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];
        pEVar27 = param_6;
        pEVar18 = pEVar20;
        if (puVar10 != (undefined1 *)0x0) {
          do {
            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);
            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);
            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);
            pEVar27->e_ident_magic_str[2] = (char)uVar19;
            puVar10 = puVar10 + -1;
            uVar19._0_1_ = pEVar18->e_ident_class;
            uVar19._1_1_ = pEVar18->e_ident_data;
            uVar19._2_1_ = pEVar18->e_ident_version;
            uVar19._3_1_ = pEVar18->e_ident_osabi;
            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;
          } while (puVar10 != (undefined1 *)0x0);
          pEVar27 = (Elf32_Ehdr *)
                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);
        }
        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);
        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);
        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);
        pEVar27->e_ident_magic_str[2] = (char)uVar19;
        goto LAB_00031de0;
      }
      pEVar18 = param_6;
      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);
      puVar35 = *(undefined **)(puVar37 + -0x90);
      pEVar29 = param_4;
LAB_00031a04:
      piVar14 = *(int **)(puVar37 + -0x54);
LAB_00031a08:
      if (*piVar14 < 0) {
        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);
        pEVar18 = (Elf32_Ehdr *)0x0;
        (**(code **)(puVar35 + -0x7a80))(param_1);
        puVar35 = *(undefined **)(puVar37 + -0x90);
        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 *)(puVar37 + -0x54) + 4) = 0;
      }
    }
LAB_00031994:
    piVar14 = *(int **)(puVar37 + -0x40);
    piVar6 = *(int **)(puVar37 + -0x58);
    if (piVar14 != (int *)0x0) {
      pcVar39 = *(code **)(puVar35 + -0x7a28);
      goto LAB_00031708;
    }
  }
  else {
    pcVar39 = *(code **)(puVar34 + 0x6c110);
    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;
    *(undefined4 *)(puVar37 + -0x34) = 1;
    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;
    (*pcVar39)();
    puVar35 = *(undefined **)(puVar37 + -0x90);
LAB_00031764:
    piVar6 = *(int **)(puVar37 + -0x58);
  }
  if (*(int *)(puVar37 + -0x2c) == *piVar6) {
    return *piVar6;
  }
  pcVar39 = *(code **)(puVar35 + -0x7b70);
  uVar25 = 0x3206c;
  (*pcVar39)();
  pcVar36 = pcVar39 + 0x72fd0;
  puVar10 = puVar3 + -0x38;
  *(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29;
  piVar6 = *(int **)(pcVar39 + 0x6b4d0);
  *(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8;
  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28;
  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;
  *(undefined4 *)(puVar3 + -4) = uVar25;
  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar30;
  *(code **)(puVar3 + -0x28) = pcVar36;
  *(int *)(puVar3 + -0x1c) = *piVar6;
  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar18) {
    if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {
      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();
      pcVar36 = *(code **)(puVar3 + -0x28);
    }
    else {
      pEVar30 = (Elf32_Ehdr *)piVar14[2];
    }
    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);
    pcVar36 = *(code **)(puVar3 + -0x28);
    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);
    uVar17 = 8;
    do {
      uVar42 = uVar17;
      pEVar28 = (Elf32_Ehdr *)*puVar4;
      puVar4 = puVar4 + -1;
      uVar17 = uVar42 - 1;
    } while (pEVar28 < pEVar18);
    if (uVar42 == 0) {
      trap(7);
    }
    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;
    *(undefined4 *)(puVar3 + -0x20) = 0;
    if (uVar17 < 0x7f01) {
      iVar11 = -(uVar17 + 7 & 0xfffffff8);
      puVar10 = puVar3 + iVar11 + -0x38;
      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);
    }
    else {
      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);
      pcVar36 = *(code **)(puVar3 + -0x28);
    }
    iVar13 = 0;
    uVar43 = 1;
    iVar11 = 0;
    uVar17 = 0;
    uVar42 = 6;
    do {
      uVar41 = uVar17 + 1;
      iVar16 = iVar11;
      uVar8 = uVar42;
      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {
        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;
        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {
          uVar8 = uVar42 * uVar8;
        }
        else {
          iVar16 = iVar11 + 1;
          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;
        }
      }
      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);
      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;
      iVar13 = iVar13 + (uVar43 & 1);
      iVar11 = iVar16;
      uVar17 = uVar41;
      uVar42 = uVar8;
    } while (bVar1);
    if (iVar16 == 0) {
      *(uint *)piVar14[2] = uVar8;
      piVar14[1] = 1;
    }
    else {
      pcVar39 = *(code **)(pcVar36 + -0x7dbc);
      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;
      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);
      pcVar36 = *(code **)(puVar3 + -0x28);
    }
    piVar31 = *(int **)(puVar3 + -0x20);
    if (piVar31 != (int *)0x0) {
      (**(code **)(pcVar36 + -0x7a28))();
      pcVar36 = *(code **)(puVar3 + -0x28);
    }
  }
  else {
    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);
    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;
    piVar14[1] = 1;
    piVar31 = piVar14;
    pEVar28 = pEVar18;
    pEVar18 = pEVar27;
    puVar10 = puVar3 + -0x38;
  }
  if (*(int *)(puVar3 + -0x1c) == *piVar6) {
    return *piVar6;
  }
  pcVar39 = *(code **)(pcVar36 + -0x7b70);
  pcVar40 = __gmpz_probab_prime_p;
  (*pcVar39)();
  pcVar36 = *(code **)(pcVar39 + 0x6ae78);
  *(int **)(puVar10 + -0x24) = piVar14;
  *(int **)(puVar10 + -0x20) = piVar6;
  piVar14 = *(int **)(pcVar39 + 0x6b270);
  *(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20;
  *(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30;
  pEVar20 = (Elf32_Ehdr *)0xf4240;
  *(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70;
  *(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32;
  *(Elf32_Ehdr **)(puVar10 + -0x14) = param_3;
  *(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18;
  *(code **)(puVar10 + -4) = pcVar40;
  *(undefined1 **)(puVar10 + -8) = puVar3 + -0x38;
  *(Elf32_Ehdr **)(puVar10 + -0xc) = param_6;
  *(int *)(puVar10 + -0x2c) = *piVar14;
  iVar11 = (*pcVar36)();
  puVar33 = (uint *)piVar31[2];
  iVar13 = *(int *)(puVar10 + -0x88);
  pEVar32 = (Elf32_Ehdr *)piVar31[1];
  uVar17 = *puVar33;
  if (iVar11 < 1) {
    pEVar20 = (Elf32_Ehdr *)0xf4240;
    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);
    iVar13 = *(int *)(puVar10 + -0x88);
    if (iVar11 < 1) {
      iVar11 = 0;
      if (pEVar32 != (Elf32_Ehdr *)0x0) {
        if (uVar17 < 3) {
          iVar11 = 2;
          if (uVar17 != 2) {
            iVar11 = 0;
          }
        }
        else {
          uVar42 = 3;
          if ((uVar17 & 1) != 0) {
            do {
              if (uVar42 == 0) {
                trap(7);
              }
              uVar43 = uVar17 % uVar42;
              if (uVar17 / uVar42 < uVar42) {
                iVar11 = 2;
                goto LAB_00032354;
              }
              uVar42 = uVar42 + 2;
            } while (uVar43 != 0);
            iVar11 = 0;
          }
        }
      }
      goto LAB_00032354;
    }
    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;
    *(uint **)(puVar10 + -0x6c) = puVar33;
    piVar31 = (int *)(puVar10 + -0x74);
    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;
  }
  if (pEVar32 != (Elf32_Ehdr *)0x0) {
    uVar17 = uVar17 & 1;
    iVar11 = 0;
    if (uVar17 == 0) goto LAB_00032354;
    pEVar20 = pEVar32;
    if ((int)pEVar32 < 10) {
      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);
      iVar13 = *(int *)(puVar10 + -0x88);
    }
    else {
      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);
      iVar13 = *(int *)(puVar10 + -0x88);
    }
    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&
          (uVar42 != (uVar42 / 7) * 7)) &&
         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&
        ((uVar42 != (uVar42 / 0x11) * 0x11 &&
         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&
       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {
      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);
      iVar13 = *(int *)(puVar10 + -0x88);
      if (0x1f < uVar42) {
        iVar16 = 0;
        iVar11 = 0;
        uVar43 = 0x1f;
        do {
          uVar8 = 3;
          do {
            if (uVar8 == 0) {
              trap(7);
            }
            uVar41 = uVar43 % uVar8;
            if (uVar43 / uVar8 < uVar8) {
              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {
                iVar26 = iVar11 + 1;
                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);
              }
              else {
                *(uint *)(puVar10 + -0x7c) = uVar42;
                *(int *)(puVar10 + -0x80) = iVar11;
                if ((int)pEVar32 < 10) {
                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);
                  iVar13 = *(int *)(puVar10 + -0x88);
                  iVar11 = *(int *)(puVar10 + -0x80);
                  uVar42 = *(uint *)(puVar10 + -0x7c);
                }
                else {
                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);
                  iVar13 = *(int *)(puVar10 + -0x88);
                  uVar42 = *(uint *)(puVar10 + -0x7c);
                  iVar11 = *(int *)(puVar10 + -0x80);
                }
                uVar17 = uVar43;
                if (iVar11 + -1 != -1) {
                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {
                    trap(7);
                  }
                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {
                    if (iVar11 + -2 == -1) goto LAB_0003295c;
                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {
                      trap(7);
                    }
                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {
                      if (iVar11 + -3 == -1) goto LAB_0003295c;
                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {
                        trap(7);
                      }
                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {
                        if (iVar11 + -4 == -1) goto LAB_0003295c;
                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {
                          trap(7);
                        }
                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {
                          if (iVar11 + -5 == -1) goto LAB_0003295c;
                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {
                            trap(7);
                          }
                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {
                            if (iVar11 + -6 == -1) goto LAB_0003295c;
                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {
                              trap(7);
                            }
                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {
                              if (iVar11 + -7 == -1) goto LAB_0003295c;
                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {
                                trap(7);
                              }
                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {
                                if (iVar11 + -8 == -1) goto LAB_0003295c;
                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {
                                  trap(7);
                                }
                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {
                                  if (iVar11 + -9 == -1) goto LAB_0003295c;
                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {
                                    trap(7);
                                  }
                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {
                                    if (iVar11 + -10 == -1) goto LAB_0003295c;
                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {
                                      trap(7);
                                    }
                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0
                                       ) {
                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;
                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {
                                        trap(7);
                                      }
                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)
                                          != 0) {
                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;
                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {
                                          trap(7);
                                        }
                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)
                                            != 0) {
                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;
                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)
                                          {
                                            trap(7);
                                          }
                                          if (uVar8 % *(uint *)(puVar10 +
                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {
                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;
                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==
                                                0) {
                                              trap(7);
                                            }
                                            if (uVar8 % *(uint *)(puVar10 +
                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)
                                            {
                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;
                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)
                                                  == 0) {
                                                trap(7);
                                              }
                                              iVar26 = 1;
                                              if (uVar8 % *(uint *)(puVar10 +
                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0
                                                 ) {
                                                iVar11 = 0;
                                                goto LAB_00032678;
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                  pEVar20 = pEVar32;
                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);
                  iVar11 = 0;
                  iVar13 = *(int *)(puVar10 + -0x88);
                  if (iVar26 == 0) goto LAB_00032354;
                  (**(code **)(iVar13 + -0x7c20))
                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,
                             *(int *)(iVar13 + -0x7fd4) + 0x3770);
                }
LAB_0003295c:
                iVar26 = 1;
                iVar11 = 0;
              }
LAB_00032678:
              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;
              break;
            }
            uVar8 = uVar8 + 2;
            iVar26 = iVar11;
          } while (uVar41 != 0);
          uVar8 = uVar43 + 2;
          iVar16 = (uint)(uVar8 < uVar43) + iVar16;
          iVar11 = iVar26;
          uVar43 = uVar8;
        } while (uVar8 < uVar42);
      }
      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);
      iVar13 = *(int *)(puVar10 + -0x88);
      pEVar20 = pEVar28;
      goto LAB_00032354;
    }
  }
  iVar11 = 0;
LAB_00032354:
  iVar16 = *(int *)(puVar10 + -0x2c);
  if (iVar16 != *piVar14) {
    pcVar39 = *(code **)(iVar13 + -0x7b70);
    uVar25 = 0x32974;
    (*pcVar39)();
    pcVar36 = pcVar39 + 0x726c0;
    pcVar9 = *(char **)(pcVar39 + 0x6a808);
    *(int **)(puVar10 + -0xa0) = piVar14;
    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;
    *(code **)(puVar10 + -0xb0) = pcVar36;
    *(undefined4 *)(puVar10 + -0x9c) = uVar25;
    if (*pcVar9 == '\0') {
      pcVar36 = *(code **)(pcVar39 + 0x6ac84);
      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);
      *pcVar9 = '\x01';
      (*pcVar36)(uVar25);
      pcVar36 = *(code **)(puVar10 + -0xb0);
    }
    pEVar32 = pEVar20;
    if ((int)pEVar20 < 0) {
      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;
    }
    iVar11 = (**(code **)(pcVar36 + -0x7f7c))
                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);
    if ((int)pEVar20 < 0) {
      iVar11 = -*(int *)(iVar16 + 4);
      *(int *)(iVar16 + 4) = iVar11;
    }
    return iVar11;
  }
  return iVar11;
}


lui gp,0x7
addiu gp,gp,0x3e78
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,0x000313a0
_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,0x00031378
_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,0x000312c0
_lw t9,-0x7fcc(gp)
addiu v1,s5,-0x1
beq v1,zero,0x0003136c
_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,0x00031298
_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,0xf30
bal 0x00030f30
_or a0,s1,zero
beq s3,zero,0x00031320
_lw gp,0x18(s8)
addiu v0,s3,-0x1
beq v0,zero,0x0003131c
_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,0x000312f8
_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,0x00031390
_lw t9,-0x7a28(gp)
lw v1,0x2c(s8)
lw v0,0x0(s4)
bne v1,v0,0x000313c4
_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 0x000312bc
_sw a3,0x0(s6)
addiu a0,s8,0x28
jalr t9
_sw a2,0x24(s8)
lw gp,0x18(s8)
b 0x0003127c
_lw a2,0x24(s8)
jalr t9
_nop
b 0x0003132c
_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 0x00031250
_lw a2,0x24(s8)
lw t9,-0x7b70(gp)
jalr t9
_nop
(translation_unit "int FUN_000311c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *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  int *piVar6;\n  byte *pbVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  byte *pbVar12;\n  int iVar13;\n  int *piVar14;\n  undefined4 uVar15;\n  int iVar16;\n  uint uVar17;\n  Elf32_Ehdr *pEVar18;\n  undefined4 uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 *puVar21;\n  undefined4 uVar22;\n  undefined1 *puVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *in_t1;\n  Elf32_Ehdr *pEVar27;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *pEVar29;\n  Elf32_Ehdr *pEVar30;\n  int *piVar31;\n  Elf32_Ehdr *pEVar32;\n  uint *puVar33;\n  undefined *puVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  code *pcVar39;\n  code *pcVar40;\n  uint uVar41;\n  uint uVar42;\n  uint uVar43;\n  undefined8 uVar44;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;\n  puVar37 = auStack_58;\n  pEVar32 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (pEVar32 < (Elf32_Ehdr *)0x7f01) {\n    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);\n    puVar37 = auStack_58 + iVar11;\n    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }\n  uVar17 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar17 < 0x7f01) {\n    iVar11 = -(uVar17 + 7 & 0xfffffff8);\n    puVar3 = puVar37 + iVar11 + 0x18;\n    puVar37 = puVar37 + iVar11;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar25 = *param_2;\n    if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }\n  }\n  *(undefined1 **)(puVar37 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar37 + 0x10) = param_6;\n  pEVar18 = param_3;\n  pEVar27 = param_5;\n  FUN_00030f30(pEVar28);\n  pEVar30 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar18 = *(Elf32_Ehdr **)pEVar28;\n    pEVar5 = param_1;\n    pEVar29 = pEVar28;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 = pEVar18;\n  }\n  piVar14 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if (local_2c == *(int *)pEVar20) {\n    return *(int *)pEVar20;\n  }\n  pcVar39 = __gmpz_powm_ui;\n  puVar34 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  puVar35 = puVar34 + 0x73c70;\n  puVar4 = *(undefined4 **)(puVar34 + 0x6c170);\n  puVar10 = puVar37 + -0xa8;\n  puVar3 = puVar37 + -0xa8;\n  puVar38 = puVar37 + -0xa8;\n  *(undefined1 **)(puVar37 + -8) = auStack_58;\n  *(undefined4 **)(puVar37 + -0x20) = param_2;\n  *(code **)(puVar37 + -4) = pcVar39;\n  *(undefined4 **)(puVar37 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar37 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar37 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30;\n  *(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28;\n  *(Elf32_Ehdr **)(puVar37 + -0x28) = param_1;\n  *(undefined **)(puVar37 + -0x90) = puVar35;\n  *(int **)(puVar37 + -0x54) = piVar14;\n  *(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18;\n  *(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27;\n  *(undefined4 *)(puVar37 + -0x2c) = *puVar4;\n  pEVar29 = param_4;\n  if (param_4 < (Elf32_Ehdr *)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar32 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;\n    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);\n    uVar42 = uVar43;\n    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }\n    uVar42 = uVar17 << 0x10 | uVar42;\n    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);\n    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }\n    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar18 = (Elf32_Ehdr *)lVar2;\n    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n    uVar17 = uVar42;\n    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }\n    *(uint *)(puVar37 + -0x44) = uVar17;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);\n    pEVar30 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);\n    if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar17 = *(int *)(puVar37 + -0x50) + 4;\n    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);\n    *(uint *)(puVar37 + -0x70) = uVar17;\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }\n    uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n    pEVar18 = pEVar20;\n    FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);\n    puVar35 = *(undefined **)(puVar37 + -0x90);\n    pEVar30 = pEVar32;\n    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }\n    puVar4 = *(undefined4 **)(puVar37 + -100);\n    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);\n    pEVar18 = (Elf32_Ehdr *)*puVar4;\n    pEVar28 = param_6;\n    puVar10 = puVar23;\n    if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar28 = pEVar18;\n    param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);\n    iVar11 = 0x1f - (int)param_1;\n    param_3 = pEVar30;\n    if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }\nLAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);\n    piVar6 = *(int **)(puVar37 + -0x58);\n    if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }\n  else {\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }\n  if (*(int *)(puVar37 + -0x2c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(puVar35 + -0x7b70);\n  uVar25 = 0x3206c;\n  (*pcVar39)();\n  pcVar36 = pcVar39 + 0x72fd0;\n  puVar10 = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29;\n  piVar6 = *(int **)(pcVar39 + 0x6b4d0);\n  *(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar25;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar30;\n  *(code **)(puVar3 + -0x28) = pcVar36;\n  *(int *)(puVar3 + -0x1c) = *piVar6;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar18) {\n    if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);\n    pcVar36 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);\n    uVar17 = 8;\n    do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);\n    if (uVar42 == 0) {\n      trap(7);\n    }\n    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    iVar13 = 0;\n    uVar43 = 1;\n    iVar11 = 0;\n    uVar17 = 0;\n    uVar42 = 6;\n    do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);\n    if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    piVar31 = *(int **)(puVar3 + -0x20);\n    if (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(pcVar36 + -0x7b70);\n  pcVar40 = __gmpz_probab_prime_p;\n  (*pcVar39)();\n  pcVar36 = *(code **)(pcVar39 + 0x6ae78);\n  *(int **)(puVar10 + -0x24) = piVar14;\n  *(int **)(puVar10 + -0x20) = piVar6;\n  piVar14 = *(int **)(pcVar39 + 0x6b270);\n  *(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30;\n  pEVar20 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70;\n  *(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar10 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18;\n  *(code **)(puVar10 + -4) = pcVar40;\n  *(undefined1 **)(puVar10 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar10 + -0xc) = param_6;\n  *(int *)(puVar10 + -0x2c) = *piVar14;\n  iVar11 = (*pcVar36)();\n  puVar33 = (uint *)piVar31[2];\n  iVar13 = *(int *)(puVar10 + -0x88);\n  pEVar32 = (Elf32_Ehdr *)piVar31[1];\n  uVar17 = *puVar33;\n  if (iVar11 < 1) {\n    pEVar20 = (Elf32_Ehdr *)0xf4240;\n    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);\n    iVar13 = *(int *)(puVar10 + -0x88);\n    if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;\n    *(uint **)(puVar10 + -0x6c) = puVar33;\n    piVar31 = (int *)(puVar10 + -0x74);\n    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;\n  }\n  if (pEVar32 != (Elf32_Ehdr *)0x0) {\n    uVar17 = uVar17 & 1;\n    iVar11 = 0;\n    if (uVar17 == 0) goto LAB_00032354;\n    pEVar20 = pEVar32;\n    if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }\n  }\n  iVar11 = 0;\nLAB_00032354:\n  iVar16 = *(int *)(puVar10 + -0x2c);\n  if (iVar16 != *piVar14) {\n    pcVar39 = *(code **)(iVar13 + -0x7b70);\n    uVar25 = 0x32974;\n    (*pcVar39)();\n    pcVar36 = pcVar39 + 0x726c0;\n    pcVar9 = *(char **)(pcVar39 + 0x6a808);\n    *(int **)(puVar10 + -0xa0) = piVar14;\n    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;\n    *(code **)(puVar10 + -0xb0) = pcVar36;\n    *(undefined4 *)(puVar10 + -0x9c) = uVar25;\n    if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }\n    pEVar32 = pEVar20;\n    if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);\n    if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }\n    return iVar11;\n  }\n  return iVar11;\n}\n\n" (function_definition "int FUN_000311c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *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  int *piVar6;\n  byte *pbVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  byte *pbVar12;\n  int iVar13;\n  int *piVar14;\n  undefined4 uVar15;\n  int iVar16;\n  uint uVar17;\n  Elf32_Ehdr *pEVar18;\n  undefined4 uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 *puVar21;\n  undefined4 uVar22;\n  undefined1 *puVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *in_t1;\n  Elf32_Ehdr *pEVar27;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *pEVar29;\n  Elf32_Ehdr *pEVar30;\n  int *piVar31;\n  Elf32_Ehdr *pEVar32;\n  uint *puVar33;\n  undefined *puVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  code *pcVar39;\n  code *pcVar40;\n  uint uVar41;\n  uint uVar42;\n  uint uVar43;\n  undefined8 uVar44;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;\n  puVar37 = auStack_58;\n  pEVar32 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (pEVar32 < (Elf32_Ehdr *)0x7f01) {\n    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);\n    puVar37 = auStack_58 + iVar11;\n    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }\n  uVar17 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar17 < 0x7f01) {\n    iVar11 = -(uVar17 + 7 & 0xfffffff8);\n    puVar3 = puVar37 + iVar11 + 0x18;\n    puVar37 = puVar37 + iVar11;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar25 = *param_2;\n    if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }\n  }\n  *(undefined1 **)(puVar37 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar37 + 0x10) = param_6;\n  pEVar18 = param_3;\n  pEVar27 = param_5;\n  FUN_00030f30(pEVar28);\n  pEVar30 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar18 = *(Elf32_Ehdr **)pEVar28;\n    pEVar5 = param_1;\n    pEVar29 = pEVar28;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 = pEVar18;\n  }\n  piVar14 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if (local_2c == *(int *)pEVar20) {\n    return *(int *)pEVar20;\n  }\n  pcVar39 = __gmpz_powm_ui;\n  puVar34 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  puVar35 = puVar34 + 0x73c70;\n  puVar4 = *(undefined4 **)(puVar34 + 0x6c170);\n  puVar10 = puVar37 + -0xa8;\n  puVar3 = puVar37 + -0xa8;\n  puVar38 = puVar37 + -0xa8;\n  *(undefined1 **)(puVar37 + -8) = auStack_58;\n  *(undefined4 **)(puVar37 + -0x20) = param_2;\n  *(code **)(puVar37 + -4) = pcVar39;\n  *(undefined4 **)(puVar37 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar37 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar37 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30;\n  *(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28;\n  *(Elf32_Ehdr **)(puVar37 + -0x28) = param_1;\n  *(undefined **)(puVar37 + -0x90) = puVar35;\n  *(int **)(puVar37 + -0x54) = piVar14;\n  *(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18;\n  *(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27;\n  *(undefined4 *)(puVar37 + -0x2c) = *puVar4;\n  pEVar29 = param_4;\n  if (param_4 < (Elf32_Ehdr *)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar32 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;\n    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);\n    uVar42 = uVar43;\n    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }\n    uVar42 = uVar17 << 0x10 | uVar42;\n    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);\n    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }\n    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar18 = (Elf32_Ehdr *)lVar2;\n    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n    uVar17 = uVar42;\n    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }\n    *(uint *)(puVar37 + -0x44) = uVar17;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);\n    pEVar30 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);\n    if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar17 = *(int *)(puVar37 + -0x50) + 4;\n    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);\n    *(uint *)(puVar37 + -0x70) = uVar17;\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }\n    uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n    pEVar18 = pEVar20;\n    FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);\n    puVar35 = *(undefined **)(puVar37 + -0x90);\n    pEVar30 = pEVar32;\n    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }\n    puVar4 = *(undefined4 **)(puVar37 + -100);\n    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);\n    pEVar18 = (Elf32_Ehdr *)*puVar4;\n    pEVar28 = param_6;\n    puVar10 = puVar23;\n    if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar28 = pEVar18;\n    param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);\n    iVar11 = 0x1f - (int)param_1;\n    param_3 = pEVar30;\n    if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }\nLAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);\n    piVar6 = *(int **)(puVar37 + -0x58);\n    if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }\n  else {\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }\n  if (*(int *)(puVar37 + -0x2c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(puVar35 + -0x7b70);\n  uVar25 = 0x3206c;\n  (*pcVar39)();\n  pcVar36 = pcVar39 + 0x72fd0;\n  puVar10 = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29;\n  piVar6 = *(int **)(pcVar39 + 0x6b4d0);\n  *(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar25;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar30;\n  *(code **)(puVar3 + -0x28) = pcVar36;\n  *(int *)(puVar3 + -0x1c) = *piVar6;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar18) {\n    if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);\n    pcVar36 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);\n    uVar17 = 8;\n    do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);\n    if (uVar42 == 0) {\n      trap(7);\n    }\n    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    iVar13 = 0;\n    uVar43 = 1;\n    iVar11 = 0;\n    uVar17 = 0;\n    uVar42 = 6;\n    do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);\n    if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    piVar31 = *(int **)(puVar3 + -0x20);\n    if (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(pcVar36 + -0x7b70);\n  pcVar40 = __gmpz_probab_prime_p;\n  (*pcVar39)();\n  pcVar36 = *(code **)(pcVar39 + 0x6ae78);\n  *(int **)(puVar10 + -0x24) = piVar14;\n  *(int **)(puVar10 + -0x20) = piVar6;\n  piVar14 = *(int **)(pcVar39 + 0x6b270);\n  *(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30;\n  pEVar20 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70;\n  *(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar10 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18;\n  *(code **)(puVar10 + -4) = pcVar40;\n  *(undefined1 **)(puVar10 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar10 + -0xc) = param_6;\n  *(int *)(puVar10 + -0x2c) = *piVar14;\n  iVar11 = (*pcVar36)();\n  puVar33 = (uint *)piVar31[2];\n  iVar13 = *(int *)(puVar10 + -0x88);\n  pEVar32 = (Elf32_Ehdr *)piVar31[1];\n  uVar17 = *puVar33;\n  if (iVar11 < 1) {\n    pEVar20 = (Elf32_Ehdr *)0xf4240;\n    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);\n    iVar13 = *(int *)(puVar10 + -0x88);\n    if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;\n    *(uint **)(puVar10 + -0x6c) = puVar33;\n    piVar31 = (int *)(puVar10 + -0x74);\n    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;\n  }\n  if (pEVar32 != (Elf32_Ehdr *)0x0) {\n    uVar17 = uVar17 & 1;\n    iVar11 = 0;\n    if (uVar17 == 0) goto LAB_00032354;\n    pEVar20 = pEVar32;\n    if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }\n  }\n  iVar11 = 0;\nLAB_00032354:\n  iVar16 = *(int *)(puVar10 + -0x2c);\n  if (iVar16 != *piVar14) {\n    pcVar39 = *(code **)(iVar13 + -0x7b70);\n    uVar25 = 0x32974;\n    (*pcVar39)();\n    pcVar36 = pcVar39 + 0x726c0;\n    pcVar9 = *(char **)(pcVar39 + 0x6a808);\n    *(int **)(puVar10 + -0xa0) = piVar14;\n    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;\n    *(code **)(puVar10 + -0xb0) = pcVar36;\n    *(undefined4 *)(puVar10 + -0x9c) = uVar25;\n    if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }\n    pEVar32 = pEVar20;\n    if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);\n    if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }\n    return iVar11;\n  }\n  return iVar11;\n}" primitive_type (function_declarator "FUN_000311c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *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,Elf32_Ehdr *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 "Elf32_Ehdr *param_4" type_identifier (pointer_declarator "*param_4" * 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  int *piVar6;\n  byte *pbVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  byte *pbVar12;\n  int iVar13;\n  int *piVar14;\n  undefined4 uVar15;\n  int iVar16;\n  uint uVar17;\n  Elf32_Ehdr *pEVar18;\n  undefined4 uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 *puVar21;\n  undefined4 uVar22;\n  undefined1 *puVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *in_t1;\n  Elf32_Ehdr *pEVar27;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *pEVar29;\n  Elf32_Ehdr *pEVar30;\n  int *piVar31;\n  Elf32_Ehdr *pEVar32;\n  uint *puVar33;\n  undefined *puVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  code *pcVar39;\n  code *pcVar40;\n  uint uVar41;\n  uint uVar42;\n  uint uVar43;\n  undefined8 uVar44;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;\n  puVar37 = auStack_58;\n  pEVar32 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (pEVar32 < (Elf32_Ehdr *)0x7f01) {\n    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);\n    puVar37 = auStack_58 + iVar11;\n    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }\n  uVar17 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar17 < 0x7f01) {\n    iVar11 = -(uVar17 + 7 & 0xfffffff8);\n    puVar3 = puVar37 + iVar11 + 0x18;\n    puVar37 = puVar37 + iVar11;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar25 = *param_2;\n    if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }\n  }\n  *(undefined1 **)(puVar37 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar37 + 0x10) = param_6;\n  pEVar18 = param_3;\n  pEVar27 = param_5;\n  FUN_00030f30(pEVar28);\n  pEVar30 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar18 = *(Elf32_Ehdr **)pEVar28;\n    pEVar5 = param_1;\n    pEVar29 = pEVar28;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 = pEVar18;\n  }\n  piVar14 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if (local_2c == *(int *)pEVar20) {\n    return *(int *)pEVar20;\n  }\n  pcVar39 = __gmpz_powm_ui;\n  puVar34 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  puVar35 = puVar34 + 0x73c70;\n  puVar4 = *(undefined4 **)(puVar34 + 0x6c170);\n  puVar10 = puVar37 + -0xa8;\n  puVar3 = puVar37 + -0xa8;\n  puVar38 = puVar37 + -0xa8;\n  *(undefined1 **)(puVar37 + -8) = auStack_58;\n  *(undefined4 **)(puVar37 + -0x20) = param_2;\n  *(code **)(puVar37 + -4) = pcVar39;\n  *(undefined4 **)(puVar37 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar37 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar37 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30;\n  *(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28;\n  *(Elf32_Ehdr **)(puVar37 + -0x28) = param_1;\n  *(undefined **)(puVar37 + -0x90) = puVar35;\n  *(int **)(puVar37 + -0x54) = piVar14;\n  *(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18;\n  *(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27;\n  *(undefined4 *)(puVar37 + -0x2c) = *puVar4;\n  pEVar29 = param_4;\n  if (param_4 < (Elf32_Ehdr *)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar32 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;\n    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);\n    uVar42 = uVar43;\n    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }\n    uVar42 = uVar17 << 0x10 | uVar42;\n    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);\n    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }\n    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar18 = (Elf32_Ehdr *)lVar2;\n    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n    uVar17 = uVar42;\n    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }\n    *(uint *)(puVar37 + -0x44) = uVar17;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);\n    pEVar30 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);\n    if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar17 = *(int *)(puVar37 + -0x50) + 4;\n    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);\n    *(uint *)(puVar37 + -0x70) = uVar17;\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }\n    uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n    pEVar18 = pEVar20;\n    FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);\n    puVar35 = *(undefined **)(puVar37 + -0x90);\n    pEVar30 = pEVar32;\n    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }\n    puVar4 = *(undefined4 **)(puVar37 + -100);\n    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);\n    pEVar18 = (Elf32_Ehdr *)*puVar4;\n    pEVar28 = param_6;\n    puVar10 = puVar23;\n    if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar28 = pEVar18;\n    param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);\n    iVar11 = 0x1f - (int)param_1;\n    param_3 = pEVar30;\n    if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }\nLAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);\n    piVar6 = *(int **)(puVar37 + -0x58);\n    if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }\n  else {\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }\n  if (*(int *)(puVar37 + -0x2c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(puVar35 + -0x7b70);\n  uVar25 = 0x3206c;\n  (*pcVar39)();\n  pcVar36 = pcVar39 + 0x72fd0;\n  puVar10 = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29;\n  piVar6 = *(int **)(pcVar39 + 0x6b4d0);\n  *(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar25;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar30;\n  *(code **)(puVar3 + -0x28) = pcVar36;\n  *(int *)(puVar3 + -0x1c) = *piVar6;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar18) {\n    if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);\n    pcVar36 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);\n    uVar17 = 8;\n    do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);\n    if (uVar42 == 0) {\n      trap(7);\n    }\n    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    iVar13 = 0;\n    uVar43 = 1;\n    iVar11 = 0;\n    uVar17 = 0;\n    uVar42 = 6;\n    do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);\n    if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    piVar31 = *(int **)(puVar3 + -0x20);\n    if (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(pcVar36 + -0x7b70);\n  pcVar40 = __gmpz_probab_prime_p;\n  (*pcVar39)();\n  pcVar36 = *(code **)(pcVar39 + 0x6ae78);\n  *(int **)(puVar10 + -0x24) = piVar14;\n  *(int **)(puVar10 + -0x20) = piVar6;\n  piVar14 = *(int **)(pcVar39 + 0x6b270);\n  *(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30;\n  pEVar20 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70;\n  *(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar10 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18;\n  *(code **)(puVar10 + -4) = pcVar40;\n  *(undefined1 **)(puVar10 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar10 + -0xc) = param_6;\n  *(int *)(puVar10 + -0x2c) = *piVar14;\n  iVar11 = (*pcVar36)();\n  puVar33 = (uint *)piVar31[2];\n  iVar13 = *(int *)(puVar10 + -0x88);\n  pEVar32 = (Elf32_Ehdr *)piVar31[1];\n  uVar17 = *puVar33;\n  if (iVar11 < 1) {\n    pEVar20 = (Elf32_Ehdr *)0xf4240;\n    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);\n    iVar13 = *(int *)(puVar10 + -0x88);\n    if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;\n    *(uint **)(puVar10 + -0x6c) = puVar33;\n    piVar31 = (int *)(puVar10 + -0x74);\n    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;\n  }\n  if (pEVar32 != (Elf32_Ehdr *)0x0) {\n    uVar17 = uVar17 & 1;\n    iVar11 = 0;\n    if (uVar17 == 0) goto LAB_00032354;\n    pEVar20 = pEVar32;\n    if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }\n  }\n  iVar11 = 0;\nLAB_00032354:\n  iVar16 = *(int *)(puVar10 + -0x2c);\n  if (iVar16 != *piVar14) {\n    pcVar39 = *(code **)(iVar13 + -0x7b70);\n    uVar25 = 0x32974;\n    (*pcVar39)();\n    pcVar36 = pcVar39 + 0x726c0;\n    pcVar9 = *(char **)(pcVar39 + 0x6a808);\n    *(int **)(puVar10 + -0xa0) = piVar14;\n    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;\n    *(code **)(puVar10 + -0xb0) = pcVar36;\n    *(undefined4 *)(puVar10 + -0x9c) = uVar25;\n    if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }\n    pEVar32 = pEVar20;\n    if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);\n    if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }\n    return iVar11;\n  }\n  return iVar11;\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 "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar18;" type_identifier (pointer_declarator "*pEVar18" * identifier) ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar20;" type_identifier (pointer_declarator "*pEVar20" * identifier) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "undefined1 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "Elf32_Ehdr *in_t1;" type_identifier (pointer_declarator "*in_t1" * identifier) ;) (declaration "Elf32_Ehdr *pEVar27;" type_identifier (pointer_declarator "*pEVar27" * identifier) ;) (declaration "uint in_t2;" type_identifier identifier ;) (declaration "Elf32_Ehdr *in_t3;" type_identifier (pointer_declarator "*in_t3" * identifier) ;) (declaration "Elf32_Ehdr *pEVar28;" type_identifier (pointer_declarator "*pEVar28" * identifier) ;) (declaration "Elf32_Ehdr *pEVar29;" type_identifier (pointer_declarator "*pEVar29" * identifier) ;) (declaration "Elf32_Ehdr *pEVar30;" type_identifier (pointer_declarator "*pEVar30" * identifier) ;) (declaration "int *piVar31;" primitive_type (pointer_declarator "*piVar31" * identifier) ;) (declaration "Elf32_Ehdr *pEVar32;" type_identifier (pointer_declarator "*pEVar32" * identifier) ;) (declaration "uint *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "undefined *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "undefined *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "code *pcVar36;" type_identifier (pointer_declarator "*pcVar36" * identifier) ;) (declaration "undefined1 *puVar37;" type_identifier (pointer_declarator "*puVar37" * identifier) ;) (declaration "undefined1 *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "code *pcVar39;" type_identifier (pointer_declarator "*pcVar39" * identifier) ;) (declaration "code *pcVar40;" type_identifier (pointer_declarator "*pcVar40" * identifier) ;) (declaration "uint uVar41;" type_identifier identifier ;) (declaration "uint uVar42;" type_identifier identifier ;) (declaration "uint uVar43;" type_identifier identifier ;) (declaration "undefined8 uVar44;" 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 "pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540" identifier = (cast_expression "(Elf32_Ehdr *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar37 = auStack_58;" (assignment_expression "puVar37 = auStack_58" identifier = identifier) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)((int)param_3 * 4);" (assignment_expression "pEVar32 = (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_0009d540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" * (cast_expression "(int *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (pEVar32 < (Elf32_Ehdr *)0x7f01) {\n    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);\n    puVar37 = auStack_58 + iVar11;\n    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }" if (parenthesized_expression "(pEVar32 < (Elf32_Ehdr *)0x7f01)" ( (binary_expression "pEVar32 < (Elf32_Ehdr *)0x7f01" identifier < (cast_expression "(Elf32_Ehdr *)0x7f01" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);\n    puVar37 = auStack_58 + iVar11;\n    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);\n  }" { (expression_statement "iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);" (assignment_expression "iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8)" identifier = (unary_expression "-((uint)&pEVar32->e_ident_osabi & 0xfffffff8)" - (parenthesized_expression "((uint)&pEVar32->e_ident_osabi & 0xfffffff8)" ( (binary_expression "(uint)&pEVar32->e_ident_osabi & 0xfffffff8" (binary_expression "(uint)&pEVar32->e_ident_osabi" (parenthesized_expression "(uint)" ( identifier )) & (field_expression "pEVar32->e_ident_osabi" identifier -> field_identifier)) & number_literal) )))) ;) (expression_statement "puVar37 = auStack_58 + iVar11;" (assignment_expression "puVar37 = auStack_58 + iVar11" identifier = (binary_expression "auStack_58 + iVar11" identifier + identifier)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11)" identifier = (cast_expression "(Elf32_Ehdr *)(&stack0xffffffc0 + iVar11)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffc0 + iVar11)" ( (binary_expression "&stack0xffffffc0 + iVar11" (pointer_expression "&stack0xffffffc0" & identifier) + identifier) )))) ;) }) (else_clause "else {\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }" else (compound_statement "{\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30,pEVar32)" ( (pointer_expression "&local_30" & identifier) , identifier ))))) ;) }))) (expression_statement "uVar17 = (int)((int)param_3 + (1 - (int)param_5)) * 4;" (assignment_expression "uVar17 = (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 (uVar17 < 0x7f01) {\n    iVar11 = -(uVar17 + 7 & 0xfffffff8);\n    puVar3 = puVar37 + iVar11 + 0x18;\n    puVar37 = puVar37 + iVar11;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" if (parenthesized_expression "(uVar17 < 0x7f01)" ( (binary_expression "uVar17 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar11 = -(uVar17 + 7 & 0xfffffff8);\n    puVar3 = puVar37 + iVar11 + 0x18;\n    puVar37 = puVar37 + iVar11;\n  }" { (expression_statement "iVar11 = -(uVar17 + 7 & 0xfffffff8);" (assignment_expression "iVar11 = -(uVar17 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar17 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar17 + 7 & 0xfffffff8)" ( (binary_expression "uVar17 + 7 & 0xfffffff8" (binary_expression "uVar17 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar3 = puVar37 + iVar11 + 0x18;" (assignment_expression "puVar3 = puVar37 + iVar11 + 0x18" identifier = (binary_expression "puVar37 + iVar11 + 0x18" (binary_expression "puVar37 + iVar11" identifier + identifier) + number_literal)) ;) (expression_statement "puVar37 = puVar37 + iVar11;" (assignment_expression "puVar37 = puVar37 + iVar11" identifier = (binary_expression "puVar37 + iVar11" identifier + identifier)) ;) }) (else_clause "else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" else (compound_statement "{\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" { (expression_statement "puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (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    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar25 = *param_2;\n    if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\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    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar25 = *param_2;\n    if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }\n  }" { (expression_statement "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (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 "uVar25 = *param_2;" (assignment_expression "uVar25 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }" if (parenthesized_expression "(puVar10 == (undefined1 *)0x0)" ( (binary_expression "puVar10 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }" { (expression_statement "pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar28->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 "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 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)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 "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 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)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 "pEVar28->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar28->e_ident_magic_str[2] = (char)uVar25" (subscript_expression "pEVar28->e_ident_magic_str[2]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar32 = pEVar28;" (assignment_expression "pEVar32 = pEVar28" identifier = identifier) ;) }) (else_clause "else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }" else (compound_statement "{\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }" { (expression_statement "pEVar30 = pEVar28;" (assignment_expression "pEVar30 = pEVar28" 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        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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\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 "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar25 = *puVar4;" (assignment_expression "uVar25 = *puVar4" identifier = (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)))) ;) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );" (assignment_expression "pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                )" identifier = (cast_expression "(Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                )" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                )" ( (binary_expression "(undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str" (cast_expression "(undefined1 *)((int)&pEVar32[-1].e_shentsize + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar32[-1].e_shentsize + 1)" ( (binary_expression "(int)&pEVar32[-1].e_shentsize + 1" (cast_expression "(int)&pEVar32[-1].e_shentsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar32[-1].e_shentsize" & (field_expression "pEVar32[-1].e_shentsize" (subscript_expression "pEVar32[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) + (cast_expression "(int)pEVar28->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier))) )))) ;) (expression_statement "pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar32->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 "pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 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)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 "pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 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)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 "pEVar32->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar32->e_ident_magic_str[2] = (char)uVar25" (subscript_expression "pEVar32->e_ident_magic_str[2]" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) })) (expression_statement "*(undefined1 **)(puVar37 + 0x14) = puVar3;" (assignment_expression "*(undefined1 **)(puVar37 + 0x14) = puVar3" (pointer_expression "*(undefined1 **)(puVar37 + 0x14)" * (cast_expression "(undefined1 **)(puVar37 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x14)" ( (binary_expression "puVar37 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + 0x10) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + 0x10) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x10)" ( (binary_expression "puVar37 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar18 = param_3;" (assignment_expression "pEVar18 = param_3" identifier = identifier) ;) (expression_statement "pEVar27 = param_5;" (assignment_expression "pEVar27 = param_5" identifier = identifier) ;) (expression_statement "FUN_00030f30(pEVar28);" (call_expression "FUN_00030f30(pEVar28)" identifier (argument_list "(pEVar28)" ( identifier ))) ;) (expression_statement "pEVar30 = param_5;" (assignment_expression "pEVar30 = param_5" identifier = identifier) ;) (if_statement "if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar18 = *(Elf32_Ehdr **)pEVar28;\n    pEVar5 = param_1;\n    pEVar29 = pEVar28;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 = pEVar18;\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    pEVar18 = *(Elf32_Ehdr **)pEVar28;\n    pEVar5 = param_1;\n    pEVar29 = pEVar28;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 = pEVar18;\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 "pEVar18 = *(Elf32_Ehdr **)pEVar28;" (assignment_expression "pEVar18 = *(Elf32_Ehdr **)pEVar28" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar28" * (cast_expression "(Elf32_Ehdr **)pEVar28" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar5 = param_1;" (assignment_expression "pEVar5 = param_1" identifier = identifier) ;) (expression_statement "pEVar29 = pEVar28;" (assignment_expression "pEVar29 = pEVar28" identifier = identifier) ;) (if_statement "if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);" do (compound_statement "{\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      }" { (expression_statement "*(Elf32_Ehdr **)pEVar5 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)pEVar5 = pEVar18" (pointer_expression "*(Elf32_Ehdr **)pEVar5" * (cast_expression "(Elf32_Ehdr **)pEVar5" ( (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 "pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;" (assignment_expression "pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar29->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar29->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar29->e_ident_class" & (field_expression "pEVar29->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)))) ;) (expression_statement "pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;" (assignment_expression "pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar29->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar29->e_ident_class" & (field_expression "pEVar29->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 "pEVar30 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);" (assignment_expression "pEVar30 = (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 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)param_1 = pEVar18" (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 "piVar14 = local_30;" (assignment_expression "piVar14 = local_30" identifier = identifier) ;) (if_statement "if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\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_0009d618)();\n  }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_2c == *(int *)pEVar20) {\n    return *(int *)pEVar20;\n  }" if (parenthesized_expression "(local_2c == *(int *)pEVar20)" ( (binary_expression "local_2c == *(int *)pEVar20" identifier == (pointer_expression "*(int *)pEVar20" * (cast_expression "(int *)pEVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return *(int *)pEVar20;\n  }" { (return_statement "return *(int *)pEVar20;" return (pointer_expression "*(int *)pEVar20" * (cast_expression "(int *)pEVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "pcVar39 = __gmpz_powm_ui;" (assignment_expression "pcVar39 = __gmpz_powm_ui" identifier = identifier) ;) (expression_statement "puVar34 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar34 = PTR___stack_chk_fail_0009d4d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" * (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar35 = puVar34 + 0x73c70;" (assignment_expression "puVar35 = puVar34 + 0x73c70" identifier = (binary_expression "puVar34 + 0x73c70" identifier + number_literal)) ;) (expression_statement "puVar4 = *(undefined4 **)(puVar34 + 0x6c170);" (assignment_expression "puVar4 = *(undefined4 **)(puVar34 + 0x6c170)" identifier = (pointer_expression "*(undefined4 **)(puVar34 + 0x6c170)" * (cast_expression "(undefined4 **)(puVar34 + 0x6c170)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar34 + 0x6c170)" ( (binary_expression "puVar34 + 0x6c170" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = puVar37 + -0xa8;" (assignment_expression "puVar10 = puVar37 + -0xa8" identifier = (binary_expression "puVar37 + -0xa8" identifier + number_literal)) ;) (expression_statement "puVar3 = puVar37 + -0xa8;" (assignment_expression "puVar3 = puVar37 + -0xa8" identifier = (binary_expression "puVar37 + -0xa8" identifier + number_literal)) ;) (expression_statement "puVar38 = puVar37 + -0xa8;" (assignment_expression "puVar38 = puVar37 + -0xa8" identifier = (binary_expression "puVar37 + -0xa8" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar37 + -8) = auStack_58;" (assignment_expression "*(undefined1 **)(puVar37 + -8) = auStack_58" (pointer_expression "*(undefined1 **)(puVar37 + -8)" * (cast_expression "(undefined1 **)(puVar37 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -8)" ( (binary_expression "puVar37 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar37 + -0x20) = param_2;" (assignment_expression "*(undefined4 **)(puVar37 + -0x20) = param_2" (pointer_expression "*(undefined4 **)(puVar37 + -0x20)" * (cast_expression "(undefined4 **)(puVar37 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x20)" ( (binary_expression "puVar37 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar37 + -4) = pcVar39;" (assignment_expression "*(code **)(puVar37 + -4) = pcVar39" (pointer_expression "*(code **)(puVar37 + -4)" * (cast_expression "(code **)(puVar37 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -4)" ( (binary_expression "puVar37 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar37 + -0x58) = puVar4;" (assignment_expression "*(undefined4 **)(puVar37 + -0x58) = puVar4" (pointer_expression "*(undefined4 **)(puVar37 + -0x58)" * (cast_expression "(undefined4 **)(puVar37 + -0x58)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x58)" ( (binary_expression "puVar37 + -0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0xc) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0xc) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0xc)" ( (binary_expression "puVar37 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x10)" ( (binary_expression "puVar37 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x14) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x14) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x14)" ( (binary_expression "puVar37 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x18)" ( (binary_expression "puVar37 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x1c)" ( (binary_expression "puVar37 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x24)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x24)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x24)" ( (binary_expression "puVar37 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x28) = param_1;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x28) = param_1" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x28)" ( (binary_expression "puVar37 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar37 + -0x90) = puVar35;" (assignment_expression "*(undefined **)(puVar37 + -0x90) = puVar35" (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar37 + -0x54) = piVar14;" (assignment_expression "*(int **)(puVar37 + -0x54) = piVar14" (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x5c)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x5c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x5c)" ( (binary_expression "puVar37 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x68)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x68)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x68)" ( (binary_expression "puVar37 + -0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar37 + -0x2c) = *puVar4;" (assignment_expression "*(undefined4 *)(puVar37 + -0x2c) = *puVar4" (pointer_expression "*(undefined4 *)(puVar37 + -0x2c)" * (cast_expression "(undefined4 *)(puVar37 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x2c)" ( (binary_expression "puVar37 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "pEVar29 = param_4;" (assignment_expression "pEVar29 = param_4" identifier = identifier) ;) (if_statement "if (param_4 < (Elf32_Ehdr *)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar32 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;\n    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);\n    uVar42 = uVar43;\n    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }\n    uVar42 = uVar17 << 0x10 | uVar42;\n    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);\n    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }\n    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar18 = (Elf32_Ehdr *)lVar2;\n    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n    uVar17 = uVar42;\n    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }\n    *(uint *)(puVar37 + -0x44) = uVar17;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);\n    pEVar30 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);\n    if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar17 = *(int *)(puVar37 + -0x50) + 4;\n    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);\n    *(uint *)(puVar37 + -0x70) = uVar17;\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }\n    uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n    pEVar18 = pEVar20;\n    FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);\n    puVar35 = *(undefined **)(puVar37 + -0x90);\n    pEVar30 = pEVar32;\n    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }\n    puVar4 = *(undefined4 **)(puVar37 + -100);\n    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);\n    pEVar18 = (Elf32_Ehdr *)*puVar4;\n    pEVar28 = param_6;\n    puVar10 = puVar23;\n    if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar28 = pEVar18;\n    param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);\n    iVar11 = 0x1f - (int)param_1;\n    param_3 = pEVar30;\n    if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }\nLAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);\n    piVar6 = *(int **)(puVar37 + -0x58);\n    if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }\n  else {\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }" if (parenthesized_expression "(param_4 < (Elf32_Ehdr *)0x14)" ( (binary_expression "param_4 < (Elf32_Ehdr *)0x14" identifier < (cast_expression "(Elf32_Ehdr *)0x14" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar32 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;\n    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);\n    uVar42 = uVar43;\n    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }\n    uVar42 = uVar17 << 0x10 | uVar42;\n    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);\n    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }\n    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar18 = (Elf32_Ehdr *)lVar2;\n    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n    uVar17 = uVar42;\n    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }\n    *(uint *)(puVar37 + -0x44) = uVar17;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);\n    pEVar30 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);\n    if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar17 = *(int *)(puVar37 + -0x50) + 4;\n    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);\n    *(uint *)(puVar37 + -0x70) = uVar17;\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }\n    uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n    pEVar18 = pEVar20;\n    FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);\n    puVar35 = *(undefined **)(puVar37 + -0x90);\n    pEVar30 = pEVar32;\n    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }\n    puVar4 = *(undefined4 **)(puVar37 + -100);\n    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);\n    pEVar18 = (Elf32_Ehdr *)*puVar4;\n    pEVar28 = param_6;\n    puVar10 = puVar23;\n    if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar28 = pEVar18;\n    param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);\n    iVar11 = 0x1f - (int)param_1;\n    param_3 = pEVar30;\n    if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }\nLAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);\n    piVar6 = *(int **)(puVar37 + -0x58);\n    if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\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 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;" (assignment_expression "*(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion" (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" * (cast_expression "(undefined4 *)(puVar37 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -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 "pEVar32 = pEVar5;" (assignment_expression "pEVar32 = pEVar5" identifier = identifier) ;) (if_statement "if ((int)pEVar5 < 0) {\n      pEVar32 = (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      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;" (assignment_expression "pEVar32 = (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 **)(puVar37 + -0x78) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x78)" ( (binary_expression "puVar37 + -0x78" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\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      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }" { (expression_statement "pEVar20 = param_4;" (assignment_expression "pEVar20 = param_4" identifier = identifier) ;) (expression_statement "uVar44 = (**(code **)(puVar34 + 0x6c210))();" (assignment_expression "uVar44 = (**(code **)(puVar34 + 0x6c210))()" identifier = (call_expression "(**(code **)(puVar34 + 0x6c210))()" (parenthesized_expression "(**(code **)(puVar34 + 0x6c210))" ( (pointer_expression "**(code **)(puVar34 + 0x6c210)" * (pointer_expression "*(code **)(puVar34 + 0x6c210)" * (cast_expression "(code **)(puVar34 + 0x6c210)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar34 + 0x6c210)" ( (binary_expression "puVar34 + 0x6c210" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_00031d4c:\n      uVar17 = (uint)uVar44;" statement_identifier : (expression_statement "uVar17 = (uint)uVar44;" (assignment_expression "uVar17 = (uint)uVar44" identifier = (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1)" ( (binary_expression "pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1" (binary_expression "pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20)" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" ( (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar3 = puVar10;" (assignment_expression "puVar3 = puVar10" identifier = identifier) ;) }) (else_clause "else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }" else (compound_statement "{\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar32 * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar32 * 4)" ( (binary_expression "(int)pEVar32 * 4" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }" if (parenthesized_expression "(param_4 == (Elf32_Ehdr *)0x0)" ( (binary_expression "param_4 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }" { (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (if_statement "if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }" if (parenthesized_expression "(pEVar32 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar32 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }" { (expression_statement "uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);" (assignment_expression "uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1)" identifier = (call_expression "(uint)(**(int **)(puVar37 + -0x4c) != 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(**(int **)(puVar37 + -0x4c) != 1)" ( (binary_expression "**(int **)(puVar37 + -0x4c) != 1" (pointer_expression "**(int **)(puVar37 + -0x4c)" * (pointer_expression "*(int **)(puVar37 + -0x4c)" * (cast_expression "(int **)(puVar37 + -0x4c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) ))))) != number_literal) )))) ;) })) (expression_statement "piVar14 = *(int **)(puVar37 + -0x54);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" identifier = (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "piVar14[1] = uVar17;" (assignment_expression "piVar14[1] = uVar17" (subscript_expression "piVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)piVar14[2] = 1;" (assignment_expression "*(undefined4 *)piVar14[2] = 1" (pointer_expression "*(undefined4 *)piVar14[2]" * (cast_expression "(undefined4 *)piVar14[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar14[2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "puVar3 = puVar37 + -0xa8;" (assignment_expression "puVar3 = puVar37 + -0xa8" identifier = (binary_expression "puVar37 + -0xa8" identifier + number_literal)) ;) (goto_statement "goto LAB_00031764;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar37 + -0x40) = 0;" (assignment_expression "*(undefined4 *)(puVar37 + -0x40) = 0" (pointer_expression "*(undefined4 *)(puVar37 + -0x40)" * (cast_expression "(undefined4 *)(puVar37 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x40)" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;" (assignment_expression "*(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum" (pointer_expression "*(word **)(puVar37 + -0x50)" * (cast_expression "(word **)(puVar37 + -0x50)" ( (type_descriptor "word **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) = (pointer_expression "&pEVar28[-1].e_shnum" & (field_expression "pEVar28[-1].e_shnum" (subscript_expression "pEVar28[-1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum)" ( (binary_expression "*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum" (pointer_expression "*(int *)(puVar37 + -0x4c)" * (cast_expression "(int *)(puVar37 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) )))) + (cast_expression "(int)&pEVar28[-1].e_shnum" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar28[-1].e_shnum" & (field_expression "pEVar28[-1].e_shnum" (subscript_expression "pEVar28[-1]" identifier [ number_literal ]) . field_identifier)))) ))))) ;) (if_statement "if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 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        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }" { (expression_statement "iVar11 = 0x20;" (assignment_expression "iVar11 = 0x20" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 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          iVar11 = 0x18;\n        }" { (expression_statement "iVar11 = 0x18;" (assignment_expression "iVar11 = 0x18" identifier = number_literal) ;) })) (expression_statement "iVar13 = 9;" (assignment_expression "iVar13 = 9" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 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          iVar13 = 1;\n        }" { (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }" else (compound_statement "{\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }" { (expression_statement "iVar11 = 0x10;" (assignment_expression "iVar11 = 0x10" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 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          iVar11 = 8;\n        }" { (expression_statement "iVar11 = 8;" (assignment_expression "iVar11 = 8" identifier = number_literal) ;) })) (expression_statement "iVar13 = 0x19;" (assignment_expression "iVar13 = 0x19" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 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          iVar13 = 0x11;\n        }" { (expression_statement "iVar13 = 0x11;" (assignment_expression "iVar13 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar34 + 0x6bdbc)" * (cast_expression "(Elf32_Ehdr **)(puVar34 + 0x6bdbc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar34 + 0x6bdbc)" ( (binary_expression "puVar34 + 0x6bdbc" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];" (assignment_expression "iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1]" identifier = (binary_expression "iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1]" identifier - (cast_expression "(uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1]" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) [ (binary_expression "((uint)pEVar20 >> iVar13) - 1" (parenthesized_expression "((uint)pEVar20 >> iVar13)" ( (binary_expression "(uint)pEVar20 >> iVar13" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) )) - number_literal) ]))))) ;) (expression_statement "*(int *)(puVar37 + -0x6c) = iVar11;" (assignment_expression "*(int *)(puVar37 + -0x6c) = iVar11" (pointer_expression "*(int *)(puVar37 + -0x6c)" * (cast_expression "(int *)(puVar37 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x6c)" ( (binary_expression "puVar37 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = puVar37 + -0xa8;" (assignment_expression "puVar10 = puVar37 + -0xa8" identifier = (binary_expression "puVar37 + -0xa8" identifier + number_literal)) ;) (if_statement "if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }" { (if_statement "if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }" if (parenthesized_expression "(*(int *)(puVar37 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar37 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar37 + -0x50) + 4U" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }" { (expression_statement "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar37 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "puVar38 = puVar37 + iVar11 + -0xa8;" (assignment_expression "puVar38 = puVar37 + iVar11 + -0xa8" identifier = (binary_expression "puVar37 + iVar11 + -0xa8" (binary_expression "puVar37 + iVar11" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar37 + iVar11 + -0x90)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + iVar11 + -0x90)" ( (binary_expression "puVar37 + iVar11 + -0x90" (binary_expression "puVar37 + iVar11" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }" else (compound_statement "{\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40)" (parenthesized_expression "(**(code **)(puVar34 + 0x6bf20))" ( (pointer_expression "**(code **)(puVar34 + 0x6bf20)" * (pointer_expression "*(code **)(puVar34 + 0x6bf20)" * (cast_expression "(code **)(puVar34 + 0x6bf20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar34 + 0x6bf20)" ( (binary_expression "puVar34 + 0x6bf20" identifier + number_literal) ))))) )) (argument_list "(puVar37 + -0x40)" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) }))) (expression_statement "(**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );" (call_expression "(**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  )" (parenthesized_expression "(**(code **)(puVar35 + -0x7ad4))" ( (pointer_expression "**(code **)(puVar35 + -0x7ad4)" * (pointer_expression "*(code **)(puVar35 + -0x7ad4)" * (cast_expression "(code **)(puVar35 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7ad4)" ( (binary_expression "puVar35 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  )" ( identifier , (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" * (cast_expression "(undefined4 *)(puVar37 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(puVar37 + -0x6c)" * (cast_expression "(undefined4 *)(puVar37 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x6c)" ( (binary_expression "puVar37 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x4c)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x4c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" * (cast_expression "(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" ( (binary_expression "pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1" (binary_expression "pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50)" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "puVar10 = puVar38;" (assignment_expression "puVar10 = puVar38" identifier = identifier) ;) })) (if_statement "if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }" if (parenthesized_expression "(pEVar32 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar32 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }" else (compound_statement "{\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }" { (expression_statement "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4)" ( (binary_expression "*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4" (binary_expression "*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50)" (pointer_expression "*(int *)(puVar37 + -0x4c)" * (cast_expression "(int *)(puVar37 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) ))))) + number_literal) ))))) ;) }))) (expression_statement "pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar20 >> 0x10)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar20 >> 0x10)" ( (binary_expression "(uint)pEVar20 >> 0x10" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }" if (parenthesized_expression "(pEVar18 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar18 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar42 = ~(uint)pEVar20 / (uint)pEVar18;" (assignment_expression "uVar42 = ~(uint)pEVar20 / (uint)pEVar18" identifier = (binary_expression "~(uint)pEVar20 / (uint)pEVar18" (unary_expression "~(uint)pEVar20" ~ (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) / (cast_expression "(uint)pEVar18" ( (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 * uVar42);" (assignment_expression "in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42)" identifier = (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar42)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar42)" ( (binary_expression "in_t2 * uVar42" identifier * identifier) )))) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff)" ( (binary_expression "~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff" (binary_expression "~(uint)pEVar20 % (uint)pEVar18 << 0x10" (binary_expression "~(uint)pEVar20 % (uint)pEVar18" (unary_expression "~(uint)pEVar20" ~ (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) % (cast_expression "(uint)pEVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) | number_literal) )))) ;) (expression_statement "uVar17 = uVar42;" (assignment_expression "uVar17 = uVar42" identifier = identifier) ;) (expression_statement "in_t1 = pEVar27;" (assignment_expression "in_t1 = pEVar27" identifier = identifier) ;) (expression_statement "puVar3 = puVar10;" (assignment_expression "puVar3 = puVar10" identifier = identifier) ;) (if_statement "if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }" if (parenthesized_expression "(pEVar30 < in_t3)" ( (binary_expression "pEVar30 < in_t3" identifier < identifier) )) (compound_statement "{\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));" (assignment_expression "pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (binary_expression "pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar30->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + -2)" ( (binary_expression "pEVar30->e_ident_magic_str + -2" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar17 = uVar42 - 1;" (assignment_expression "uVar17 = uVar42 - 1" identifier = (binary_expression "uVar42 - 1" identifier - number_literal)) ;) (if_statement "if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;" if (parenthesized_expression "((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))" ( (binary_expression "(pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3)" (parenthesized_expression "(pEVar20 <= pEVar30)" ( (binary_expression "pEVar20 <= pEVar30" identifier <= identifier) )) && (parenthesized_expression "(uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3)" ( (comma_expression "uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3" (assignment_expression "uVar44 = CONCAT44(pEVar30,uVar42 - 2)" identifier = (call_expression "CONCAT44(pEVar30,uVar42 - 2)" identifier (argument_list "(pEVar30,uVar42 - 2)" ( identifier , (binary_expression "uVar42 - 2" identifier - number_literal) )))) , (binary_expression "pEVar30 < in_t3" identifier < identifier)) ))) )) (goto_statement "goto LAB_00031d4c;" goto statement_identifier ;)) })) }))) (if_statement "if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }" if (parenthesized_expression "(pEVar18 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar18 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;" (assignment_expression "uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18" identifier = (binary_expression "(uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18" (call_expression "(uint)((int)pEVar30 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar30 - (int)in_t3)" ( (binary_expression "(int)pEVar30 - (int)in_t3" (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / (cast_expression "(uint)pEVar18" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff)" ( (binary_expression "(uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff" (binary_expression "(uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10" (binary_expression "(uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18" (call_expression "(uint)((int)pEVar30 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar30 - (int)in_t3)" ( (binary_expression "(int)pEVar30 - (int)in_t3" (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) % (cast_expression "(uint)pEVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) | number_literal) )))) ;) (expression_statement "uVar42 = uVar43;" (assignment_expression "uVar42 = uVar43" identifier = identifier) ;) (if_statement "if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }" if (parenthesized_expression "((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))))))" ( (binary_expression "(pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))" (parenthesized_expression "(pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43))" ( (binary_expression "pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)" identifier < (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar43)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar43)" ( (binary_expression "in_t2 * uVar43" identifier * identifier) )))) )) && (parenthesized_expression "(((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))" ( (parenthesized_expression "((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))))" ( (binary_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))" (binary_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20" (cast_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (binary_expression "pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar30->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + -2)" ( (binary_expression "pEVar30->e_ident_magic_str + -2" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) ))) < identifier) || (parenthesized_expression "(uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))" ( (comma_expression "uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (assignment_expression "uVar42 = uVar43 - 2" identifier = (binary_expression "uVar43 - 2" identifier - number_literal)) , (binary_expression "(Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar43)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar43)" ( (binary_expression "in_t2 * uVar43" identifier * identifier) ))) <= (cast_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (binary_expression "pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar30->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + -2)" ( (binary_expression "pEVar30->e_ident_magic_str + -2" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) ))))) ))) )) ))) )) (compound_statement "{\n      uVar42 = uVar43 - 1;\n    }" { (expression_statement "uVar42 = uVar43 - 1;" (assignment_expression "uVar42 = uVar43 - 1" identifier = (binary_expression "uVar43 - 1" identifier - number_literal)) ;) })) (expression_statement "uVar42 = uVar17 << 0x10 | uVar42;" (assignment_expression "uVar42 = uVar17 << 0x10 | uVar42" identifier = (binary_expression "uVar17 << 0x10 | uVar42" (binary_expression "uVar17 << 0x10" identifier << number_literal) | identifier)) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1)" ( (binary_expression "in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1" (binary_expression "in_t1->e_ident_magic_str + uVar42 * (int)pEVar20" (field_expression "in_t1->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "uVar42 * (int)pEVar20" identifier * (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier))) + number_literal) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);" (assignment_expression "lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27)" identifier = (binary_expression "(ulonglong)uVar42 * ZEXT48(pEVar27)" (cast_expression "(ulonglong)uVar42" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(pEVar27)" identifier (argument_list "(pEVar27)" ( identifier ))))) ;) (if_statement "if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }" if (parenthesized_expression "(pEVar30 < in_t1)" ( (binary_expression "pEVar30 < in_t1" identifier < identifier) )) (compound_statement "{\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }" { (expression_statement "uVar17 = pEVar30 < pEVar20 ^ 1;" (assignment_expression "uVar17 = pEVar30 < pEVar20 ^ 1" identifier = (binary_expression "pEVar30 < pEVar20 ^ 1" (binary_expression "pEVar30 < pEVar20" identifier < identifier) ^ number_literal)) ;) (expression_statement "pEVar18 = pEVar20;" (assignment_expression "pEVar18 = pEVar20" identifier = identifier) ;) (if_statement "if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }" { (expression_statement "pEVar18 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "uVar42 = (uVar42 - 1) - uVar17;" (assignment_expression "uVar42 = (uVar42 - 1) - uVar17" identifier = (binary_expression "(uVar42 - 1) - uVar17" (parenthesized_expression "(uVar42 - 1)" ( (binary_expression "uVar42 - 1" identifier - number_literal) )) - identifier)) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));" (assignment_expression "pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20))" ( (binary_expression "(int)pEVar30 + (-(int)pEVar18 - (int)pEVar20)" (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar18 - (int)pEVar20)" ( (binary_expression "-(int)pEVar18 - (int)pEVar20" (unary_expression "-(int)pEVar18" - (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier)) - (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);" (assignment_expression "lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27)" identifier = (binary_expression "(ulonglong)uVar42 * ZEXT48(pEVar27)" (cast_expression "(ulonglong)uVar42" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(pEVar27)" identifier (argument_list "(pEVar27)" ( identifier ))))) ;) })) (expression_statement "pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);" (assignment_expression "pEVar27 = (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 "pEVar18 = (Elf32_Ehdr *)lVar2;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)lVar2" identifier = (cast_expression "(Elf32_Ehdr *)lVar2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (binary_expression "pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar30->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + -2)" ( (binary_expression "pEVar30->e_ident_magic_str + -2" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar17 = uVar42;" (assignment_expression "uVar17 = uVar42" identifier = identifier) ;) (if_statement "if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }" if (parenthesized_expression "(((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18))))" ( (binary_expression "((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))" (parenthesized_expression "((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30))" ( (binary_expression "(pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)" (parenthesized_expression "(pEVar30 < pEVar27)" ( (binary_expression "pEVar30 < pEVar27" identifier < identifier) )) && (parenthesized_expression "(uVar17 = uVar42 - 1, pEVar20 <= pEVar30)" ( (comma_expression "uVar17 = uVar42 - 1, pEVar20 <= pEVar30" (assignment_expression "uVar17 = uVar42 - 1" identifier = (binary_expression "uVar42 - 1" identifier - number_literal)) , (binary_expression "pEVar20 <= pEVar30" identifier <= identifier)) ))) )) && (parenthesized_expression "((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))" ( (parenthesized_expression "(pEVar20 < pEVar30 || (in_t1 <= pEVar18))" ( (binary_expression "pEVar20 < pEVar30 || (in_t1 <= pEVar18)" (binary_expression "pEVar20 < pEVar30" identifier < identifier) || (parenthesized_expression "(in_t1 <= pEVar18)" ( (binary_expression "in_t1 <= pEVar18" identifier <= identifier) ))) )) ))) )) (compound_statement "{\n      uVar17 = uVar42 - 2;\n    }" { (expression_statement "uVar17 = uVar42 - 2;" (assignment_expression "uVar17 = uVar42 - 2" identifier = (binary_expression "uVar42 - 2" identifier - number_literal)) ;) })) (expression_statement "*(uint *)(puVar37 + -0x44) = uVar17;" (assignment_expression "*(uint *)(puVar37 + -0x44) = uVar17" (pointer_expression "*(uint *)(puVar37 + -0x44)" * (cast_expression "(uint *)(puVar37 + -0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x44)" ( (binary_expression "puVar37 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar37 + -0x5c) + 4" (pointer_expression "*(int *)(puVar37 + -0x5c)" * (cast_expression "(int *)(puVar37 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x5c)" ( (binary_expression "puVar37 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar30 = pEVar27;" (assignment_expression "pEVar30 = pEVar27" identifier = identifier) ;) (if_statement "if ((int)pEVar27 < 0) {\n      pEVar30 = (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      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;" (assignment_expression "pEVar30 = (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 "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x5c) + 8)" ( (binary_expression "*(int *)(puVar37 + -0x5c) + 8" (pointer_expression "*(int *)(puVar37 + -0x5c)" * (cast_expression "(int *)(puVar37 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x5c)" ( (binary_expression "puVar37 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }" if (parenthesized_expression "((int)pEVar30 <= (int)pEVar32)" ( (binary_expression "(int)pEVar30 <= (int)pEVar32" (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }" { (if_statement "if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\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 **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }" { (expression_statement "*(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -100) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -100)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -100)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -100)" ( (binary_expression "puVar37 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;" (assignment_expression "*(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U" (pointer_expression "*(uint *)(puVar37 + -0x70)" * (cast_expression "(uint *)(puVar37 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar37 + -0x50) + 4U" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar37 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar37 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar37 + -0x50) + 4U" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) ))))) ;) (goto_statement "goto LAB_000317f8;" goto statement_identifier ;) })) (labeled_statement "LAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);" statement_identifier : (expression_statement "piVar14 = *(int **)(puVar37 + -0x40);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x40)" identifier = (pointer_expression "*(int **)(puVar37 + -0x40)" * (cast_expression "(int **)(puVar37 + -0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x40)" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar37 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar37 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar37 + -0x54) + 4" (pointer_expression "*(int *)(puVar37 + -0x54)" * (cast_expression "(int *)(puVar37 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (if_statement "if (piVar14 == (int *)0x0) goto LAB_00031764;" if (parenthesized_expression "(piVar14 == (int *)0x0)" ( (binary_expression "piVar14 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00031764;" goto statement_identifier ;)) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7a28);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7a28)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7a28)" * (cast_expression "(code **)(puVar35 + -0x7a28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7a28)" ( (binary_expression "puVar35 + -0x7a28" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031708:\n      (*pcVar39)();" statement_identifier : (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00031764;" goto statement_identifier ;) })) (expression_statement "uVar17 = *(int *)(puVar37 + -0x50) + 4;" (assignment_expression "uVar17 = *(int *)(puVar37 + -0x50) + 4" identifier = (binary_expression "*(int *)(puVar37 + -0x50) + 4" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(uVar17 < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar17 < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < 0x7f01)" ( (binary_expression "uVar17 < 0x7f01" identifier < number_literal) ))))) ;) (expression_statement "*(uint *)(puVar37 + -0x70) = uVar17;" (assignment_expression "*(uint *)(puVar37 + -0x70) = uVar17" (pointer_expression "*(uint *)(puVar37 + -0x70)" * (cast_expression "(uint *)(puVar37 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\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      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }" { (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7d50);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7d50)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7d50)" * (cast_expression "(code **)(puVar35 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7d50)" ( (binary_expression "puVar35 + -0x7d50" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x60)" ( (binary_expression "puVar37 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);" (assignment_expression "puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17)" identifier = (cast_expression "(undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar39)(puVar37 + -0x40,uVar17)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(puVar37 + -0x40,uVar17)" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) , identifier ))))) ;) (expression_statement "pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);" (assignment_expression "pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x60)" ( (binary_expression "puVar37 + -0x60" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar37 + -100) = puVar10;" (assignment_expression "*(undefined1 **)(puVar37 + -100) = puVar10" (pointer_expression "*(undefined1 **)(puVar37 + -100)" * (cast_expression "(undefined1 **)(puVar37 + -100)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -100)" ( (binary_expression "puVar37 + -100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }" else (compound_statement "{\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }" { (expression_statement "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar37 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "puVar10 = puVar3 + iVar11 + 0x18;" (assignment_expression "puVar10 = puVar3 + iVar11 + 0x18" identifier = (binary_expression "puVar3 + iVar11 + 0x18" (binary_expression "puVar3 + iVar11" identifier + identifier) + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar37 + -100) = puVar10;" (assignment_expression "*(undefined1 **)(puVar37 + -100) = puVar10" (pointer_expression "*(undefined1 **)(puVar37 + -100)" * (cast_expression "(undefined1 **)(puVar37 + -100)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -100)" ( (binary_expression "puVar37 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3 = puVar3 + iVar11;" (assignment_expression "puVar3 = puVar3 + iVar11" identifier = (binary_expression "puVar3 + iVar11" identifier + identifier)) ;) }))) (expression_statement "uVar25 = *(undefined4 *)(puVar37 + -0x4c);" (assignment_expression "uVar25 = *(undefined4 *)(puVar37 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" * (cast_expression "(undefined4 *)(puVar37 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x14) = puVar37 + -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 "puVar37 + -0x44" 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 "pEVar18 = pEVar20;" (assignment_expression "pEVar18 = pEVar20" identifier = identifier) ;) (expression_statement "FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);" (call_expression "FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25)" identifier (argument_list "(puVar10,pEVar20,pEVar30,uVar25)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar30 = pEVar32;" (assignment_expression "pEVar30 = pEVar32" identifier = identifier) ;) (if_statement "if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }" if (parenthesized_expression "(*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0)" ( (binary_expression "*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0" (pointer_expression "*(int *)(puVar10 + *(int *)(puVar37 + -0x50))" * (cast_expression "(int *)(puVar10 + *(int *)(puVar37 + -0x50))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + *(int *)(puVar37 + -0x50))" ( (binary_expression "puVar10 + *(int *)(puVar37 + -0x50)" identifier + (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) ))))) )))) == number_literal) )) (compound_statement "{\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }" { (expression_statement "puVar10 = puVar10 + *(int *)(puVar37 + -0x70);" (assignment_expression "puVar10 = puVar10 + *(int *)(puVar37 + -0x70)" identifier = (binary_expression "puVar10 + *(int *)(puVar37 + -0x70)" identifier + (pointer_expression "*(int *)(puVar37 + -0x70)" * (cast_expression "(int *)(puVar37 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) )))))) ;) (do_statement "do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);" do (compound_statement "{\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);" (assignment_expression "pEVar30 = (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) )))) ;) (if_statement "if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;" 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)) )) (goto_statement "goto LAB_000316f4;" goto statement_identifier ;)) (expression_statement "piVar14 = (int *)(puVar10 + -8);" (assignment_expression "piVar14 = (int *)(puVar10 + -8)" identifier = (cast_expression "(int *)(puVar10 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar32 << 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar32 << 3)" ( (binary_expression "(int)pEVar32 << 3" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "puVar10 = puVar10 + -4;" (assignment_expression "puVar10 = puVar10 + -4" identifier = (binary_expression "puVar10 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar14 == 0)" ( (binary_expression "*piVar14 == 0" (pointer_expression "*piVar14" * identifier) == number_literal) )) ;) })) (labeled_statement "LAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }" statement_identifier : (if_statement "if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }" if (parenthesized_expression "((int)pEVar32 * 8 + 4U < 0x7f01)" ( (binary_expression "(int)pEVar32 * 8 + 4U < 0x7f01" (binary_expression "(int)pEVar32 * 8 + 4U" (binary_expression "(int)pEVar32 * 8" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) < number_literal) )) (compound_statement "{\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }" { (expression_statement "iVar11 = -((int)pEVar32 * 8 + 8);" (assignment_expression "iVar11 = -((int)pEVar32 * 8 + 8)" identifier = (unary_expression "-((int)pEVar32 * 8 + 8)" - (parenthesized_expression "((int)pEVar32 * 8 + 8)" ( (binary_expression "(int)pEVar32 * 8 + 8" (binary_expression "(int)pEVar32 * 8" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar11 + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar11 + 0x18)" ( (binary_expression "puVar3 + iVar11 + 0x18" (binary_expression "puVar3 + iVar11" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar3 = puVar3 + iVar11;" (assignment_expression "puVar3 = puVar3 + iVar11" identifier = (binary_expression "puVar3 + iVar11" identifier + identifier)) ;) }) (else_clause "else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }" else (compound_statement "{\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }" { (expression_statement "pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40)" (parenthesized_expression "(**(code **)(puVar35 + -0x7d50))" ( (pointer_expression "**(code **)(puVar35 + -0x7d50)" * (pointer_expression "*(code **)(puVar35 + -0x7d50)" * (cast_expression "(code **)(puVar35 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7d50)" ( (binary_expression "puVar35 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar37 + -0x40)" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) })))) (if_statement "if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\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      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }" { (expression_statement "param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));" (assignment_expression "param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70))" identifier = (cast_expression "(Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70))" (parenthesized_expression "(**(code **)(puVar35 + -0x7d50))" ( (pointer_expression "**(code **)(puVar35 + -0x7d50)" * (pointer_expression "*(code **)(puVar35 + -0x7d50)" * (cast_expression "(code **)(puVar35 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7d50)" ( (binary_expression "puVar35 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70))" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar37 + -0x70)" * (cast_expression "(undefined4 *)(puVar37 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) )))) ))))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }" else (compound_statement "{\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }" { (expression_statement "param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);" (assignment_expression "param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (binary_expression "puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18" (binary_expression "puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar37 + -0x70) + 7U" (pointer_expression "*(int *)(puVar37 + -0x70)" * (cast_expression "(int *)(puVar37 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);" (assignment_expression "puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" identifier = (binary_expression "puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar37 + -0x70) + 7U" (pointer_expression "*(int *)(puVar37 + -0x70)" * (cast_expression "(int *)(puVar37 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) ))))) ;) }))) (if_statement "if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }" if (parenthesized_expression "(*(int *)(puVar37 + -0x50) + 8U < 0x7f01)" ( (binary_expression "*(int *)(puVar37 + -0x50) + 8U < 0x7f01" (binary_expression "*(int *)(puVar37 + -0x50) + 8U" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }" { (expression_statement "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);" (assignment_expression "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8" (binary_expression "*(int *)(puVar37 + -0x50) + 0xfU" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;" (assignment_expression "*(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18" (pointer_expression "*(undefined1 **)(puVar37 + -0x74)" * (cast_expression "(undefined1 **)(puVar37 + -0x74)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x74)" ( (binary_expression "puVar37 + -0x74" identifier + number_literal) )))) = (binary_expression "puVar3 + iVar11 + 0x18" (binary_expression "puVar3 + iVar11" identifier + identifier) + number_literal)) ;) (expression_statement "puVar3 = puVar3 + iVar11;" (assignment_expression "puVar3 = puVar3 + iVar11" identifier = (binary_expression "puVar3 + iVar11" identifier + identifier)) ;) }) (else_clause "else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }" else (compound_statement "{\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }" { (expression_statement "uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);" (assignment_expression "uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40)" identifier = (call_expression "(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40)" (parenthesized_expression "(**(code **)(puVar35 + -0x7d50))" ( (pointer_expression "**(code **)(puVar35 + -0x7d50)" * (pointer_expression "*(code **)(puVar35 + -0x7d50)" * (cast_expression "(code **)(puVar35 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7d50)" ( (binary_expression "puVar35 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar37 + -0x40)" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) )))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar37 + -0x74) = uVar25;" (assignment_expression "*(undefined4 *)(puVar37 + -0x74) = uVar25" (pointer_expression "*(undefined4 *)(puVar37 + -0x74)" * (cast_expression "(undefined4 *)(puVar37 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x74)" ( (binary_expression "puVar37 + -0x74" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar4 = *(undefined4 **)(puVar37 + -100);" (assignment_expression "puVar4 = *(undefined4 **)(puVar37 + -100)" identifier = (pointer_expression "*(undefined4 **)(puVar37 + -100)" * (cast_expression "(undefined4 **)(puVar37 + -100)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -100)" ( (binary_expression "puVar37 + -100" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);" (assignment_expression "puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" 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 "pEVar18 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)*puVar4" identifier = (cast_expression "(Elf32_Ehdr *)*puVar4" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "pEVar28 = param_6;" (assignment_expression "pEVar28 = param_6" identifier = identifier) ;) (expression_statement "puVar10 = puVar23;" (assignment_expression "puVar10 = puVar23" identifier = identifier) ;) (if_statement "if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }" if (parenthesized_expression "(puVar23 != (undefined1 *)0x0)" ( (binary_expression "puVar23 != (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 **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }" { (do_statement "do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);" do (compound_statement "{\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->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 **)pEVar28 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)pEVar28 = pEVar18" (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 "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)*puVar4" identifier = (cast_expression "(Elf32_Ehdr *)*puVar4" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * 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)))) ;) }) while (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3)" ( (binary_expression "param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3" (binary_expression "param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&pEVar30[-1].e_shstrndx * 4" (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)) + number_literal) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)pEVar28 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)pEVar28 = pEVar18" (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 "param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);" (assignment_expression "param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1])" identifier = (cast_expression "(Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1])" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1])" ( (binary_expression "0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]" number_literal - (cast_expression "(uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) [ (binary_expression "((uint)param_4 >> 1) - 1" (parenthesized_expression "((uint)param_4 >> 1)" ( (binary_expression "(uint)param_4 >> 1" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) - number_literal) ])))) )))) ;) (expression_statement "iVar11 = 0x1f - (int)param_1;" (assignment_expression "iVar11 = 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 = pEVar30;" (assignment_expression "param_3 = pEVar30" identifier = identifier) ;) (if_statement "if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }" { (if_statement "if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }" if (parenthesized_expression "(pEVar32 == pEVar30)" ( (binary_expression "pEVar32 == pEVar30" identifier == identifier) )) (compound_statement "{\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }" { (expression_statement "pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;" (assignment_expression "pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1" identifier = (binary_expression "param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)pEVar32 * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar32 * 4" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;" (assignment_expression "iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4" identifier = (binary_expression "*(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4" (pointer_expression "*(int *)(puVar37 + -0x4c)" * (cast_expression "(int *)(puVar37 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) )))) + (binary_expression "(int)pEVar32 * 4" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);" do (compound_statement "{\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        }" { (expression_statement "pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);" (assignment_expression "pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(iVar11 + -4)" * (cast_expression "(Elf32_Ehdr **)(iVar11 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = puVar23 + -1;" (assignment_expression "puVar23 = puVar23 + -1" identifier = (binary_expression "puVar23 + -1" identifier + number_literal)) ;) (if_statement "if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }" if (parenthesized_expression "(*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18)" ( (binary_expression "*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18" (pointer_expression "*(Elf32_Ehdr **)(pcVar9 + -4)" * (cast_expression "(Elf32_Ehdr **)(pcVar9 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + -4)" ( (binary_expression "pcVar9 + -4" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }" { (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7b2c);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7b2c)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7b2c)" * (cast_expression "(code **)(puVar35 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7b2c)" ( (binary_expression "puVar35 + -0x7b2c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;" if (parenthesized_expression "(pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4))" ( (binary_expression "pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)" identifier < (pointer_expression "*(Elf32_Ehdr **)(pcVar9 + -4)" * (cast_expression "(Elf32_Ehdr **)(pcVar9 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + -4)" ( (binary_expression "pcVar9 + -4" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00031d88;" goto statement_identifier ;)) (goto_statement "goto LAB_000318d0;" goto statement_identifier ;) })) (expression_statement "pcVar9 = pcVar9 + -4;" (assignment_expression "pcVar9 = pcVar9 + -4" identifier = (binary_expression "pcVar9 + -4" identifier + number_literal)) ;) (expression_statement "iVar11 = iVar11 + -4;" (assignment_expression "iVar11 = iVar11 + -4" identifier = (binary_expression "iVar11 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar23 != (undefined1 *)0xffffffff)" ( (binary_expression "puVar23 != (undefined1 *)0xffffffff" identifier != (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7b2c);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7b2c)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7b2c)" * (cast_expression "(code **)(puVar35 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7b2c)" ( (binary_expression "puVar35 + -0x7b2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031d88:\n        pEVar18 = param_6;" statement_identifier : (expression_statement "pEVar18 = param_6;" (assignment_expression "pEVar18 = param_6" identifier = identifier) ;)) (expression_statement "(*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);" (call_expression "(*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" * (cast_expression "(undefined4 *)(puVar37 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }" else (compound_statement "{\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);" (assignment_expression "pEVar28 = (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) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + 8) = param_4;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + 8) = param_4" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + 8)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 8)" ( (binary_expression "puVar37 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);" (assignment_expression "param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1)" identifier = (cast_expression "(Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)param_4 << ((uint)param_1 & 0x1f)) << 1)" ( (binary_expression "((int)param_4 << ((uint)param_1 & 0x1f)) << 1" (parenthesized_expression "((int)param_4 << ((uint)param_1 & 0x1f))" ( (binary_expression "(int)param_4 << ((uint)param_1 & 0x1f)" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) 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 **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;" (assignment_expression "*(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1" (pointer_expression "*(char **)(puVar37 + -0x84)" * (cast_expression "(char **)(puVar37 + -0x84)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x84)" ( (binary_expression "puVar37 + -0x84" identifier + number_literal) )))) = (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50)" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) ))))) + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;" (assignment_expression "*(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44" (pointer_expression "*(undefined1 **)(puVar37 + -0x7c)" * (cast_expression "(undefined1 **)(puVar37 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7c)" ( (binary_expression "puVar37 + -0x7c" identifier + number_literal) )))) = (binary_expression "puVar37 + -0x44" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;" (assignment_expression "*(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30" (pointer_expression "*(int *)(puVar37 + -0x80)" * (cast_expression "(int *)(puVar37 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x80)" ( (binary_expression "puVar37 + -0x80" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar35 + -0x7fcc) + 0xf30" (pointer_expression "*(int *)(puVar35 + -0x7fcc)" * (cast_expression "(int *)(puVar35 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x7fcc)" ( (binary_expression "puVar35 + -0x7fcc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;" (assignment_expression "*(undefined4 *)(puVar37 + -0x60) = 0x3fffffff" (pointer_expression "*(undefined4 *)(puVar37 + -0x60)" * (cast_expression "(undefined4 *)(puVar37 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x60)" ( (binary_expression "puVar37 + -0x60" identifier + number_literal) )))) = number_literal) ;) (do_statement "do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);" do (compound_statement "{\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      }" { (expression_statement "pEVar18 = param_6;" (assignment_expression "pEVar18 = param_6" identifier = identifier) ;) (expression_statement "(**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);" (call_expression "(**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3)" (parenthesized_expression "(**(code **)(puVar35 + -0x7cac))" ( (pointer_expression "**(code **)(puVar35 + -0x7cac)" * (pointer_expression "*(code **)(puVar35 + -0x7cac)" * (cast_expression "(code **)(puVar35 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7cac)" ( (binary_expression "puVar35 + -0x7cac" identifier + number_literal) ))))) )) (argument_list "(pEVar20,param_6,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));" (assignment_expression "param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" identifier = (cast_expression "(Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" ( (binary_expression "(int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -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 *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" ( (binary_expression "*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1)" * (cast_expression "(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1)" ( (binary_expression "pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1" (binary_expression "pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4" (parenthesized_expression "((int)param_3 * 2 + *(int *)(puVar37 + -0x60))" ( (binary_expression "(int)param_3 * 2 + *(int *)(puVar37 + -0x60)" (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(puVar37 + -0x60)" * (cast_expression "(int *)(puVar37 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x60)" ( (binary_expression "puVar37 + -0x60" identifier + number_literal) ))))) )) * number_literal)) + number_literal) )))) == number_literal) )))) )))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }" if (parenthesized_expression "((int)param_3 < (int)pEVar32)" ( (binary_expression "(int)param_3 < (int)pEVar32" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }" { (expression_statement "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (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            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\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            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }" { (expression_statement "uVar22._0_1_ = pEVar20->e_ident_magic_num;" (assignment_expression "uVar22._0_1_ = pEVar20->e_ident_magic_num" (field_expression "uVar22._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar22._1_1_ = pEVar20->e_ident_magic_str[0];" (assignment_expression "uVar22._1_1_ = pEVar20->e_ident_magic_str[0]" (field_expression "uVar22._1_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[0]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar22._2_1_ = pEVar20->e_ident_magic_str[1];" (assignment_expression "uVar22._2_1_ = pEVar20->e_ident_magic_str[1]" (field_expression "uVar22._2_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[1]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar22._3_1_ = pEVar20->e_ident_magic_str[2];" (assignment_expression "uVar22._3_1_ = pEVar20->e_ident_magic_str[2]" (field_expression "uVar22._3_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[2]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" identifier = identifier) ;) (if_statement "if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }" if (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }" { (expression_statement "pbVar12 = &pEVar20->e_ident_class;" (assignment_expression "pbVar12 = &pEVar20->e_ident_class" identifier = (pointer_expression "&pEVar20->e_ident_class" & (field_expression "pEVar20->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);" do (compound_statement "{\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              }" { (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar22 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar22 >> 0x18)" ( (binary_expression "(uint)uVar22 >> 0x18" (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 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)uVar22 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar22 >> 0x10)" ( (binary_expression "(uint)uVar22 >> 0x10" (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 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)uVar22 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar22 >> 8)" ( (binary_expression "(uint)uVar22 >> 8" (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar22;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar22" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar22" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar12 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar12 + 4)" ( (binary_expression "pbVar12 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar22 = *(undefined4 *)pbVar12;" (assignment_expression "uVar22 = *(undefined4 *)pbVar12" identifier = (pointer_expression "*(undefined4 *)pbVar12" * (cast_expression "(undefined4 *)pbVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 "pbVar12 = (byte *)pEVar18;" (assignment_expression "pbVar12 = (byte *)pEVar18" identifier = (cast_expression "(byte *)pEVar18" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -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 *)(puVar37 + -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 *)(puVar37 + -0x60) * 4 + -5)" ( (binary_expression "param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5" (binary_expression "param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -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 *)(puVar37 + -0x60) * 4" (pointer_expression "*(int *)(puVar37 + -0x60)" * (cast_expression "(int *)(puVar37 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x60)" ( (binary_expression "puVar37 + -0x60" identifier + number_literal) )))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar22 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar22 >> 0x18)" ( (binary_expression "(uint)uVar22 >> 0x18" (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 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)uVar22 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar22 >> 0x10)" ( (binary_expression "(uint)uVar22 >> 0x10" (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 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)uVar22 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar22 >> 8)" ( (binary_expression "(uint)uVar22 >> 8" (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar22;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar22" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar22" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7d8c);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7d8c)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7d8c)" * (cast_expression "(code **)(puVar35 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7d8c)" ( (binary_expression "puVar35 + -0x7d8c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }" else (compound_statement "{\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }" { (expression_statement "uVar25 = *(undefined4 *)(puVar37 + -0x4c);" (assignment_expression "uVar25 = *(undefined4 *)(puVar37 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" * (cast_expression "(undefined4 *)(puVar37 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar39 = *(code **)(puVar37 + -0x80);" (assignment_expression "pcVar39 = *(code **)(puVar37 + -0x80)" identifier = (pointer_expression "*(code **)(puVar37 + -0x80)" * (cast_expression "(code **)(puVar37 + -0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x80)" ( (binary_expression "puVar37 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -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 *)(puVar37 + -0x74)" * (cast_expression "(undefined4 *)(puVar37 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x74)" ( (binary_expression "puVar37 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);" (assignment_expression "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c)" (pointer_expression "*(undefined4 *)(puVar3 + 0x10)" * (cast_expression "(undefined4 *)(puVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar37 + -0x7c)" * (cast_expression "(undefined4 *)(puVar37 + -0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x7c)" ( (binary_expression "puVar37 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar39)(pEVar20,param_3,uVar25,pEVar32);" (call_expression "(*pcVar39)(pEVar20,param_3,uVar25,pEVar32)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(pEVar20,param_3,uVar25,pEVar32)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar25._0_1_ = pEVar20->e_ident_magic_num;" (assignment_expression "uVar25._0_1_ = pEVar20->e_ident_magic_num" (field_expression "uVar25._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar25._1_1_ = pEVar20->e_ident_magic_str[0];" (assignment_expression "uVar25._1_1_ = pEVar20->e_ident_magic_str[0]" (field_expression "uVar25._1_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[0]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar25._2_1_ = pEVar20->e_ident_magic_str[1];" (assignment_expression "uVar25._2_1_ = pEVar20->e_ident_magic_str[1]" (field_expression "uVar25._2_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[1]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar25._3_1_ = pEVar20->e_ident_magic_str[2];" (assignment_expression "uVar25._3_1_ = pEVar20->e_ident_magic_str[2]" (field_expression "uVar25._3_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[2]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\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            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }" { (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "param_6->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 "param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 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)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 "param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 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)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 "param_6->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar25" (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)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }" else (compound_statement "{\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }" { (expression_statement "pEVar18 = pEVar28;" (assignment_expression "pEVar18 = pEVar28" identifier = identifier) ;) (expression_statement "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" identifier = identifier) ;) (expression_statement "pbVar12 = &pEVar20->e_ident_class;" (assignment_expression "pbVar12 = &pEVar20->e_ident_class" identifier = (pointer_expression "&pEVar20->e_ident_class" & (field_expression "pEVar20->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);" do (compound_statement "{\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            }" { (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar27->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 "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 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)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 "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 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)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 "pEVar27->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar25" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "param_3 = (Elf32_Ehdr *)(pbVar12 + 4);" (assignment_expression "param_3 = (Elf32_Ehdr *)(pbVar12 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar12 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar12 + 4)" ( (binary_expression "pbVar12 + 4" identifier + number_literal) )))) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar18[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar18[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar18[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar18[-1].e_shstrndx" & (field_expression "pEVar18[-1].e_shstrndx" (subscript_expression "pEVar18[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "uVar25 = *(undefined4 *)pbVar12;" (assignment_expression "uVar25 = *(undefined4 *)pbVar12" identifier = (pointer_expression "*(undefined4 *)pbVar12" * (cast_expression "(undefined4 *)pbVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 "pbVar12 = (byte *)param_3;" (assignment_expression "pbVar12 = (byte *)param_3" identifier = (cast_expression "(byte *)param_3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(pEVar18 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar18 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar37 + -0x84) = uVar25;" (assignment_expression "**(undefined4 **)(puVar37 + -0x84) = uVar25" (pointer_expression "**(undefined4 **)(puVar37 + -0x84)" * (pointer_expression "*(undefined4 **)(puVar37 + -0x84)" * (cast_expression "(undefined4 **)(puVar37 + -0x84)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x84)" ( (binary_expression "puVar37 + -0x84" identifier + number_literal) ))))) = identifier) ;) }))) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7d8c);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7d8c)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7d8c)" * (cast_expression "(code **)(puVar35 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7d8c)" ( (binary_expression "puVar35 + -0x7d8c" identifier + number_literal) ))))) ;) (expression_statement "pEVar18 = param_3;" (assignment_expression "pEVar18 = param_3" identifier = identifier) ;) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" identifier = identifier) ;) }))) (if_statement "if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\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          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }" { (expression_statement "uVar25 = *(undefined4 *)(puVar37 + -100);" (assignment_expression "uVar25 = *(undefined4 *)(puVar37 + -100)" identifier = (pointer_expression "*(undefined4 *)(puVar37 + -100)" * (cast_expression "(undefined4 *)(puVar37 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -100)" ( (binary_expression "puVar37 + -100" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30" (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 "pEVar18 = param_6;" (assignment_expression "pEVar18 = param_6" identifier = identifier) ;) (expression_statement "(*pcVar39)(pEVar20,param_6,param_3,uVar25);" (call_expression "(*pcVar39)(pEVar20,param_6,param_3,uVar25)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(pEVar20,param_6,param_3,uVar25)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));" (assignment_expression "param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" identifier = (cast_expression "(Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" ( (binary_expression "pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" (binary_expression "pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2)" (field_expression "pEVar30->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 *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" - (call_expression "(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" ( (binary_expression "*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1)" * (cast_expression "(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1)" ( (binary_expression "pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1" (binary_expression "pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4" (cast_expression "(int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60))" ( (binary_expression "pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)" (binary_expression "pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2)" (field_expression "pEVar30->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 *)(puVar37 + -0x60)" * (cast_expression "(int *)(puVar37 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x60)" ( (binary_expression "puVar37 + -0x60" identifier + number_literal) ))))) ))) * number_literal)) + number_literal) )))) == number_literal) ))))) )))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }" if (parenthesized_expression "((int)param_3 < (int)pEVar32)" ( (binary_expression "(int)param_3 < (int)pEVar32" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }" { (expression_statement "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (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_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\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              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }" { (expression_statement "uVar24._0_1_ = pEVar20->e_ident_magic_num;" (assignment_expression "uVar24._0_1_ = pEVar20->e_ident_magic_num" (field_expression "uVar24._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar24._1_1_ = pEVar20->e_ident_magic_str[0];" (assignment_expression "uVar24._1_1_ = pEVar20->e_ident_magic_str[0]" (field_expression "uVar24._1_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[0]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar24._2_1_ = pEVar20->e_ident_magic_str[1];" (assignment_expression "uVar24._2_1_ = pEVar20->e_ident_magic_str[1]" (field_expression "uVar24._2_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[1]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar24._3_1_ = pEVar20->e_ident_magic_str[2];" (assignment_expression "uVar24._3_1_ = pEVar20->e_ident_magic_str[2]" (field_expression "uVar24._3_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[2]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }" if (parenthesized_expression "(puVar10 == (undefined1 *)0x0)" ( (binary_expression "puVar10 == (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)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }" { (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "param_6->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 "param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 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)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 "param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 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)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 "param_6->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar24" (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)uVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }" else (compound_statement "{\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }" { (expression_statement "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" identifier = identifier) ;) (expression_statement "pbVar12 = &pEVar20->e_ident_class;" (assignment_expression "pbVar12 = &pEVar20->e_ident_class" identifier = (pointer_expression "&pEVar20->e_ident_class" & (field_expression "pEVar20->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);" do (compound_statement "{\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                }" { (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "pEVar27->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 "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 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)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 "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 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)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 "pEVar27->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar24" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar12 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar12 + 4)" ( (binary_expression "pbVar12 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar24 = *(undefined4 *)pbVar12;" (assignment_expression "uVar24 = *(undefined4 *)pbVar12" identifier = (pointer_expression "*(undefined4 *)pbVar12" * (cast_expression "(undefined4 *)pbVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 "pbVar12 = (byte *)pEVar18;" (assignment_expression "pbVar12 = (byte *)pEVar18" identifier = (cast_expression "(byte *)pEVar18" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (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 *)(puVar37 + -0x60) * 4 + -5) = uVar24;" (assignment_expression "*(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24" (pointer_expression "*(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5)" * (cast_expression "(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -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 *)(puVar37 + -0x60) * 4 + -5)" ( (binary_expression "param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5" (binary_expression "param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -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 *)(puVar37 + -0x60) * 4" (pointer_expression "*(int *)(puVar37 + -0x60)" * (cast_expression "(int *)(puVar37 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x60)" ( (binary_expression "puVar37 + -0x60" identifier + number_literal) )))) * number_literal)) + number_literal) )))) = identifier) ;) }))) })) }) (else_clause "else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }" else (compound_statement "{\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }" { (expression_statement "uVar25 = *(undefined4 *)(puVar37 + -0x4c);" (assignment_expression "uVar25 = *(undefined4 *)(puVar37 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" * (cast_expression "(undefined4 *)(puVar37 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar39 = *(code **)(puVar37 + -0x80);" (assignment_expression "pcVar39 = *(code **)(puVar37 + -0x80)" identifier = (pointer_expression "*(code **)(puVar37 + -0x80)" * (cast_expression "(code **)(puVar37 + -0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x80)" ( (binary_expression "puVar37 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -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 *)(puVar37 + -0x74)" * (cast_expression "(undefined4 *)(puVar37 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x74)" ( (binary_expression "puVar37 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);" (assignment_expression "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c)" (pointer_expression "*(undefined4 *)(puVar3 + 0x10)" * (cast_expression "(undefined4 *)(puVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar37 + -0x7c)" * (cast_expression "(undefined4 *)(puVar37 + -0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x7c)" ( (binary_expression "puVar37 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar39)(pEVar20,param_3,uVar25,pEVar32);" (call_expression "(*pcVar39)(pEVar20,param_3,uVar25,pEVar32)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(pEVar20,param_3,uVar25,pEVar32)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar18 = *(Elf32_Ehdr **)pEVar20;" (assignment_expression "pEVar18 = *(Elf32_Ehdr **)pEVar20" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar20" * (cast_expression "(Elf32_Ehdr **)pEVar20" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar29 = pEVar28;" (assignment_expression "pEVar29 = pEVar28" identifier = identifier) ;) (expression_statement "pEVar5 = param_6;" (assignment_expression "pEVar5 = param_6" identifier = identifier) ;) (expression_statement "pEVar27 = pEVar20;" (assignment_expression "pEVar27 = pEVar20" identifier = identifier) ;) (if_statement "if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\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 **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }" { (expression_statement "*(Elf32_Ehdr **)param_6 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)param_6 = pEVar18" (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 = pEVar32;" (assignment_expression "param_3 = pEVar32" identifier = identifier) ;) }) (else_clause "else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }" else (compound_statement "{\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }" { (do_statement "do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);" do (compound_statement "{\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              }" { (expression_statement "*(Elf32_Ehdr **)pEVar5 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)pEVar5 = pEVar18" (pointer_expression "*(Elf32_Ehdr **)pEVar5" * (cast_expression "(Elf32_Ehdr **)pEVar5" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar29[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar29[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar29[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar29[-1].e_shstrndx" & (field_expression "pEVar29[-1].e_shstrndx" (subscript_expression "pEVar29[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;" (assignment_expression "pEVar18 = *(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 "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)))) ;) (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 "(pEVar29 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar29 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar37 + -0x84) = pEVar18;" (assignment_expression "**(undefined4 **)(puVar37 + -0x84) = pEVar18" (pointer_expression "**(undefined4 **)(puVar37 + -0x84)" * (pointer_expression "*(undefined4 **)(puVar37 + -0x84)" * (cast_expression "(undefined4 **)(puVar37 + -0x84)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x84)" ( (binary_expression "puVar37 + -0x84" identifier + number_literal) ))))) = identifier) ;) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" identifier = identifier) ;) }))) }))) })) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -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 "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) (expression_statement "param_4 = *(Elf32_Ehdr **)(puVar37 + 8);" (assignment_expression "param_4 = *(Elf32_Ehdr **)(puVar37 + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar37 + 8)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 8)" ( (binary_expression "puVar37 + 8" identifier + number_literal) ))))) ;) (expression_statement "pEVar30 = pEVar28;" (assignment_expression "pEVar30 = pEVar28" identifier = identifier) ;) }))) (labeled_statement "LAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;" statement_identifier : (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)) ;)) (expression_statement "pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x6c)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x6c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x6c)" ( (binary_expression "puVar37 + -0x6c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -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_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }" { (labeled_statement "LAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 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        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 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        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }" { (expression_statement "pcVar9 = param_6->e_ident_magic_str + (int)param_3 * 4 + -1;" (assignment_expression "pcVar9 = param_6->e_ident_magic_str + (int)param_3 * 4 + -1" identifier = (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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);" do (compound_statement "{\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }" { (expression_statement "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)param_4 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_4 & 1)" ( (binary_expression "(uint)param_4 & 1" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar14 = *(int **)(puVar37 + -0x54);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" identifier = (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;" if (parenthesized_expression "((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))" ( (binary_expression "(pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))" (parenthesized_expression "(pEVar29 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar29 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))" ( (comma_expression "piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" identifier = (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar37 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar37 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar37 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar37 + -0x5c) + 4" (pointer_expression "*(int *)(puVar37 + -0x5c)" * (cast_expression "(int *)(puVar37 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x5c)" ( (binary_expression "puVar37 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (goto_statement "goto LAB_00031934;" goto statement_identifier ;)) (goto_statement "goto LAB_00031a08;" goto statement_identifier ;) })) (expression_statement "piVar14 = (int *)(pcVar9 + -8);" (assignment_expression "piVar14 = (int *)(pcVar9 + -8)" identifier = (cast_expression "(int *)(pcVar9 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + -8)" ( (binary_expression "pcVar9 + -8" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = pcVar9 + -4;" (assignment_expression "pcVar9 = pcVar9 + -4" identifier = (binary_expression "pcVar9 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar14 == 0)" ( (binary_expression "*piVar14 == 0" (pointer_expression "*piVar14" * identifier) == number_literal) )) ;) }))) (expression_statement "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)param_4 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_4 & 1)" ( (binary_expression "(uint)param_4 & 1" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar14 = *(int **)(puVar37 + -0x54);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" identifier = (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }" if (parenthesized_expression "((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))" ( (binary_expression "(pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))" (parenthesized_expression "(pEVar29 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar29 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))" ( (comma_expression "piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" identifier = (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar37 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar37 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar37 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar37 + -0x5c) + 4" (pointer_expression "*(int *)(puVar37 + -0x5c)" * (cast_expression "(int *)(puVar37 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x5c)" ( (binary_expression "puVar37 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (compound_statement "{\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }" { (labeled_statement "LAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);" statement_identifier : (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7a80);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7a80)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7a80)" * (cast_expression "(code **)(puVar35 + -0x7a80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7a80)" ( (binary_expression "puVar35 + -0x7a80" identifier + number_literal) ))))) ;)) (if_statement "if (*piVar14 < (int)param_3) goto LAB_00031fa0;" if (parenthesized_expression "(*piVar14 < (int)param_3)" ( (binary_expression "*piVar14 < (int)param_3" (pointer_expression "*piVar14" * identifier) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00031fa0;" goto statement_identifier ;)) (labeled_statement "LAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);" statement_identifier : (expression_statement "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)param_4 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_4 & 1)" ( (binary_expression "(uint)param_4 & 1" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;)) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar37 + -0x54) + 4" (pointer_expression "*(int *)(puVar37 + -0x54)" * (cast_expression "(int *)(puVar37 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (if_statement "if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;" 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_00031994;" goto statement_identifier ;)) }) (else_clause "else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }" else (compound_statement "{\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }" { (if_statement "if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;" 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_00031a04;" goto statement_identifier ;)) (expression_statement "param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x68) + 8)" ( (binary_expression "*(int *)(puVar37 + -0x68) + 8" (pointer_expression "*(int *)(puVar37 + -0x68)" * (cast_expression "(int *)(puVar37 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x68)" ( (binary_expression "puVar37 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar18 = param_1;" (assignment_expression "pEVar18 = param_1" identifier = identifier) ;) (expression_statement "iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);" (assignment_expression "iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3)" identifier = (call_expression "(**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3)" (parenthesized_expression "(**(code **)(puVar35 + -0x7b2c))" ( (pointer_expression "**(code **)(puVar35 + -0x7b2c)" * (pointer_expression "*(code **)(puVar35 + -0x7b2c)" * (cast_expression "(code **)(puVar35 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7b2c)" ( (binary_expression "puVar35 + -0x7b2c" identifier + number_literal) ))))) )) (argument_list "(param_6,param_1,param_6,param_3)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar28 = param_3;" (assignment_expression "pEVar28 = param_3" identifier = identifier) ;) (if_statement "if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }" { (labeled_statement "LAB_00031fd0:\n          param_3 = pEVar28;" statement_identifier : (expression_statement "param_3 = pEVar28;" (assignment_expression "param_3 = pEVar28" identifier = identifier) ;)) (if_statement "if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;" if (parenthesized_expression "((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28))" ( (binary_expression "(param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)" (parenthesized_expression "(param_6 == param_1)" ( (binary_expression "param_6 == param_1" identifier == identifier) )) || (parenthesized_expression "((int)pEVar32 <= (int)pEVar28)" ( (binary_expression "(int)pEVar32 <= (int)pEVar28" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_00031c50;" goto statement_identifier ;)) (expression_statement "pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1)" ( (binary_expression "param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1" (binary_expression "param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70)" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar37 + -0x70)" * (cast_expression "(int *)(puVar37 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);" (assignment_expression "pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1)" identifier = (cast_expression "(byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1)" ( (binary_expression "param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1" (binary_expression "param_1->e_ident_magic_str + (int)pEVar28 * 4" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar28 * 4" (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);" (assignment_expression "pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1)" identifier = (cast_expression "(byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1)" ( (binary_expression "param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)pEVar28 * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar28 * 4" (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (do_statement "do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);" do (compound_statement "{\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          }" { (expression_statement "uVar25 = *(undefined4 *)pbVar7;" (assignment_expression "uVar25 = *(undefined4 *)pbVar7" identifier = (pointer_expression "*(undefined4 *)pbVar7" * (cast_expression "(undefined4 *)pbVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar7 = pbVar7 + 4;" (assignment_expression "pbVar7 = pbVar7 + 4" identifier = (binary_expression "pbVar7 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar12 = uVar25;" (assignment_expression "*(undefined4 *)pbVar12 = uVar25" (pointer_expression "*(undefined4 *)pbVar12" * (cast_expression "(undefined4 *)pbVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar12 = pbVar12 + 4;" (assignment_expression "pbVar12 = pbVar12 + 4" identifier = (binary_expression "pbVar12 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pEVar18 != (Elf32_Ehdr *)pbVar7)" ( (binary_expression "pEVar18 != (Elf32_Ehdr *)pbVar7" identifier != (cast_expression "(Elf32_Ehdr *)pbVar7" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "iVar11 = *(int *)(puVar37 + -0x50);" (assignment_expression "iVar11 = *(int *)(puVar37 + -0x50)" identifier = (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }" else (compound_statement "{\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;" (assignment_expression "pEVar28 = (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))) ;) (if_statement "if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }" if (parenthesized_expression "((int)param_3 < (int)pEVar32)" ( (binary_expression "(int)param_3 < (int)pEVar32" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }" { (expression_statement "pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);" (assignment_expression "pEVar18 = (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 "pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar12 = (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 "iVar11 = *(int *)pbVar12;" (assignment_expression "iVar11 = *(int *)pbVar12" identifier = (pointer_expression "*(int *)pbVar12" * (cast_expression "(int *)pbVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;" (assignment_expression "*(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1" (pointer_expression "*(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" * (cast_expression "(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (type_descriptor "int *" primitive_type (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) )))) = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (if_statement "if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }" { (expression_statement "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar18->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar18->e_ident_class" & (field_expression "pEVar18->e_ident_class" identifier -> field_identifier)))) ;) (if_statement "if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;" if (parenthesized_expression "((int)pEVar32 <= (int)pEVar28)" ( (binary_expression "(int)pEVar32 <= (int)pEVar28" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00031c50;" goto statement_identifier ;)) (expression_statement "pcVar9 = (char *)((int)pEVar18 + -1);" (assignment_expression "pcVar9 = (char *)((int)pEVar18 + -1)" identifier = (cast_expression "(char *)((int)pEVar18 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar18 + -1)" ( (binary_expression "(int)pEVar18 + -1" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str)" identifier = (cast_expression "(Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str)" ( (binary_expression "(char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str" (cast_expression "(char *)((int)pEVar18 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar18 + -1)" ( (binary_expression "(int)pEVar18 + -1" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + (cast_expression "(int)param_6->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier))) )))) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1)" identifier = (cast_expression "(Elf32_Ehdr *)(param_3->e_ident_magic_str + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3->e_ident_magic_str + 1)" ( (binary_expression "param_3->e_ident_magic_str + 1" (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);" (assignment_expression "iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str)" identifier = (pointer_expression "*(int *)(pcVar9 + (int)param_1->e_ident_magic_str)" * (cast_expression "(int *)(pcVar9 + (int)param_1->e_ident_magic_str)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + (int)param_1->e_ident_magic_str)" ( (binary_expression "pcVar9 + (int)param_1->e_ident_magic_str" identifier + (cast_expression "(int)param_1->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier))) ))))) ;) (expression_statement "*(int *)pEVar18 = iVar11 + -1;" (assignment_expression "*(int *)pEVar18 = iVar11 + -1" (pointer_expression "*(int *)pEVar18" * (cast_expression "(int *)pEVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (expression_statement "pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar7 = (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) )))) ;) (while_statement "while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }" while (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }" { (expression_statement "param_3 = pEVar28;" (assignment_expression "param_3 = pEVar28" identifier = identifier) ;) (if_statement "if (pEVar32 == pEVar28) goto LAB_00031c50;" if (parenthesized_expression "(pEVar32 == pEVar28)" ( (binary_expression "pEVar32 == pEVar28" identifier == identifier) )) (goto_statement "goto LAB_00031c50;" goto statement_identifier ;)) (expression_statement "iVar11 = *(int *)(pbVar12 + 8);" (assignment_expression "iVar11 = *(int *)(pbVar12 + 8)" identifier = (pointer_expression "*(int *)(pbVar12 + 8)" * (cast_expression "(int *)(pbVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar12 + 8)" ( (binary_expression "pbVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str" identifier = (cast_expression "(Elf32_Ehdr *)pEVar28->e_ident_magic_str" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier))) ;) (expression_statement "pbVar12 = pbVar12 + 4;" (assignment_expression "pbVar12 = pbVar12 + 4" identifier = (binary_expression "pbVar12 + 4" identifier + number_literal)) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)(iVar11 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(iVar11 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -1)" ( (binary_expression "iVar11 + -1" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18" (pointer_expression "*(Elf32_Ehdr **)(pbVar7 + 8)" * (cast_expression "(Elf32_Ehdr **)(pbVar7 + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar7 + 8)" ( (binary_expression "pbVar7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar7 = pbVar7 + 4;" (assignment_expression "pbVar7 = pbVar7 + 4" identifier = (binary_expression "pbVar7 + 4" identifier + number_literal)) ;) })) })) (goto_statement "goto LAB_00031fd0;" goto statement_identifier ;) })) (labeled_statement "LAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);" statement_identifier : (expression_statement "iVar11 = *(int *)(puVar37 + -0x50);" (assignment_expression "iVar11 = *(int *)(puVar37 + -0x50)" identifier = (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) ))))) ;)) }))) (expression_statement "pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + iVar11 + -1)" ( (binary_expression "param_6->e_ident_magic_str + iVar11 + -1" (binary_expression "param_6->e_ident_magic_str + iVar11" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) )))) ;) (expression_statement "iVar11._0_1_ = pEVar28->e_ident_magic_num;" (assignment_expression "iVar11._0_1_ = pEVar28->e_ident_magic_num" (field_expression "iVar11._0_1_" identifier . field_identifier) = (field_expression "pEVar28->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "iVar11._1_1_ = pEVar28->e_ident_magic_str[0];" (assignment_expression "iVar11._1_1_ = pEVar28->e_ident_magic_str[0]" (field_expression "iVar11._1_1_" identifier . field_identifier) = (subscript_expression "pEVar28->e_ident_magic_str[0]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar11._2_1_ = pEVar28->e_ident_magic_str[1];" (assignment_expression "iVar11._2_1_ = pEVar28->e_ident_magic_str[1]" (field_expression "iVar11._2_1_" identifier . field_identifier) = (subscript_expression "pEVar28->e_ident_magic_str[1]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar11._3_1_ = pEVar28->e_ident_magic_str[2];" (assignment_expression "iVar11._3_1_ = pEVar28->e_ident_magic_str[2]" (field_expression "iVar11._3_1_" identifier . field_identifier) = (subscript_expression "pEVar28->e_ident_magic_str[2]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }" { (expression_statement "iVar11 = *(int *)(puVar37 + -0x78);" (assignment_expression "iVar11 = *(int *)(puVar37 + -0x78)" identifier = (pointer_expression "*(int *)(puVar37 + -0x78)" * (cast_expression "(int *)(puVar37 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x78)" ( (binary_expression "puVar37 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;" (assignment_expression "pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1" identifier = (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70)" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar37 + -0x70)" * (cast_expression "(int *)(puVar37 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) ))))) + number_literal)) ;) (do_statement "do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);" do (compound_statement "{\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          }" { (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (if_statement "if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }" { (expression_statement "piVar14 = *(int **)(puVar37 + -0x54);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" identifier = (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00031a08;" goto statement_identifier ;) })) (expression_statement "piVar14 = (int *)(pcVar9 + -8);" (assignment_expression "piVar14 = (int *)(pcVar9 + -8)" identifier = (cast_expression "(int *)(pcVar9 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + -8)" ( (binary_expression "pcVar9 + -8" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = pcVar9 + -4;" (assignment_expression "pcVar9 = pcVar9 + -4" identifier = (binary_expression "pcVar9 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar14 == 0)" ( (binary_expression "*piVar14 == 0" (pointer_expression "*piVar14" * identifier) == number_literal) )) ;) (expression_statement "*(int *)(puVar37 + -0x78) = iVar11;" (assignment_expression "*(int *)(puVar37 + -0x78) = iVar11" (pointer_expression "*(int *)(puVar37 + -0x78)" * (cast_expression "(int *)(puVar37 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x78)" ( (binary_expression "puVar37 + -0x78" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);" (assignment_expression "param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x78)" ( (binary_expression "puVar37 + -0x78" identifier + number_literal) ))))) ;) (if_statement "if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }" if (parenthesized_expression "(**(int **)(puVar37 + -0x54) < (int)param_3)" ( (binary_expression "**(int **)(puVar37 + -0x54) < (int)param_3" (pointer_expression "**(int **)(puVar37 + -0x54)" * (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }" { (expression_statement "param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);" (assignment_expression "param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x78)" ( (binary_expression "puVar37 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7a80);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7a80)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7a80)" * (cast_expression "(code **)(puVar35 + -0x7a80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7a80)" ( (binary_expression "puVar35 + -0x7a80" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031fa0:\n          pEVar18 = param_3;" statement_identifier : (expression_statement "pEVar18 = param_3;" (assignment_expression "pEVar18 = param_3" identifier = identifier) ;)) (expression_statement "(*pcVar39)(*(undefined4 *)(puVar37 + -0x54));" (call_expression "(*pcVar39)(*(undefined4 *)(puVar37 + -0x54))" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(*(undefined4 *)(puVar37 + -0x54))" ( (pointer_expression "*(undefined4 *)(puVar37 + -0x54)" * (cast_expression "(undefined4 *)(puVar37 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) )))) ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00031944;" goto statement_identifier ;) })) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar37 + -0x54) + 4" (pointer_expression "*(int *)(puVar37 + -0x54)" * (cast_expression "(int *)(puVar37 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }))) (expression_statement "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)param_4 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_4 & 1)" ( (binary_expression "(uint)param_4 & 1" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (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 "pEVar18 = *(Elf32_Ehdr **)param_6;" (assignment_expression "pEVar18 = *(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 "puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);" (assignment_expression "puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(puVar37 + -0x54) + 8)" * (cast_expression "(undefined4 **)(*(int *)(puVar37 + -0x54) + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x54) + 8)" ( (binary_expression "*(int *)(puVar37 + -0x54) + 8" (pointer_expression "*(int *)(puVar37 + -0x54)" * (cast_expression "(int *)(puVar37 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar4 = puVar21;" (assignment_expression "puVar4 = puVar21" identifier = identifier) ;) (expression_statement "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" identifier = identifier) ;) (if_statement "if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }" if (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }" { (do_statement "do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);" do (compound_statement "{\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        }" { (expression_statement "*puVar4 = pEVar18;" (assignment_expression "*puVar4 = pEVar18" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;" (assignment_expression "pEVar18 = *(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 "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1)" identifier = (binary_expression "puVar21 + (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 "*puVar21 = pEVar18;" (assignment_expression "*puVar21 = pEVar18" (pointer_expression "*puVar21" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }" else (compound_statement "{\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }" { (expression_statement "iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);" (assignment_expression "iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27)" identifier = (call_expression "(**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27)" (parenthesized_expression "(**(code **)(puVar35 + -0x7ad4))" ( (pointer_expression "**(code **)(puVar35 + -0x7ad4)" * (pointer_expression "*(code **)(puVar35 + -0x7ad4)" * (cast_expression "(code **)(puVar35 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7ad4)" ( (binary_expression "puVar35 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar20,param_6,param_3,pEVar27)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar16 = *(int *)(puVar37 + -0x90);" (assignment_expression "iVar16 = *(int *)(puVar37 + -0x90)" identifier = (pointer_expression "*(int *)(puVar37 + -0x90)" * (cast_expression "(int *)(puVar37 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = (int)param_3 * 4;" (assignment_expression "iVar11 = (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 + ((iVar13 != 0) - 1));" (assignment_expression "param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1))" identifier = (cast_expression "(Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3->e_ident_magic_str + ((iVar13 != 0) - 1))" ( (binary_expression "param_3->e_ident_magic_str + ((iVar13 != 0) - 1)" (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier) + (parenthesized_expression "((iVar13 != 0) - 1)" ( (binary_expression "(iVar13 != 0) - 1" (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) - number_literal) ))) )))) ;) (expression_statement "*(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;" (assignment_expression "*(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13" (pointer_expression "*(int *)(pEVar20->e_ident_magic_str + iVar11 + -1)" * (cast_expression "(int *)(pEVar20->e_ident_magic_str + iVar11 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + iVar11 + -1)" ( (binary_expression "pEVar20->e_ident_magic_str + iVar11 + -1" (binary_expression "pEVar20->e_ident_magic_str + iVar11" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "param_1 = pEVar27;" (assignment_expression "param_1 = pEVar27" identifier = identifier) ;) (if_statement "if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }" if (parenthesized_expression "((int)pEVar32 <= (int)param_3)" ( (binary_expression "(int)pEVar32 <= (int)param_3" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }" { (expression_statement "uVar25 = *(undefined4 *)(puVar37 + -0x4c);" (assignment_expression "uVar25 = *(undefined4 *)(puVar37 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" * (cast_expression "(undefined4 *)(puVar37 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -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 *)(puVar37 + -0x74)" * (cast_expression "(undefined4 *)(puVar37 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x74)" ( (binary_expression "puVar37 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar37 + -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 "puVar37 + -0x44" identifier + number_literal)) ;) (expression_statement "FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);" (call_expression "FUN_00030f30(pEVar20,param_3,uVar25,pEVar32)" identifier (argument_list "(pEVar20,param_3,uVar25,pEVar32)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (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 "iVar16 = *(int *)(puVar37 + -0x90);" (assignment_expression "iVar16 = *(int *)(puVar37 + -0x90)" identifier = (pointer_expression "*(int *)(puVar37 + -0x90)" * (cast_expression "(int *)(puVar37 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar15._0_1_ = pEVar20->e_ident_magic_num;" (assignment_expression "uVar15._0_1_ = pEVar20->e_ident_magic_num" (field_expression "uVar15._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar15._1_1_ = pEVar20->e_ident_magic_str[0];" (assignment_expression "uVar15._1_1_ = pEVar20->e_ident_magic_str[0]" (field_expression "uVar15._1_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[0]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar15._2_1_ = pEVar20->e_ident_magic_str[1];" (assignment_expression "uVar15._2_1_ = pEVar20->e_ident_magic_str[1]" (field_expression "uVar15._2_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[1]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar15._3_1_ = pEVar20->e_ident_magic_str[2];" (assignment_expression "uVar15._3_1_ = pEVar20->e_ident_magic_str[2]" (field_expression "uVar15._3_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[2]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" identifier = identifier) ;) (expression_statement "pEVar18 = pEVar20;" (assignment_expression "pEVar18 = pEVar20" identifier = identifier) ;) (if_statement "if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }" if (parenthesized_expression "(puVar10 == (undefined1 *)0x0)" ( (binary_expression "puVar10 == (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)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }" { (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18)" (field_expression "param_6->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar15 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar15 >> 0x18)" ( (binary_expression "(uint)uVar15 >> 0x18" (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 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)uVar15 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar15 >> 0x10)" ( (binary_expression "(uint)uVar15 >> 0x10" (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 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)uVar15 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar15 >> 8)" ( (binary_expression "(uint)uVar15 >> 8" (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[2] = (char)uVar15;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar15" (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)uVar15" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" identifier = identifier) ;) }) (else_clause "else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }" else (compound_statement "{\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }" { (do_statement "do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);" do (compound_statement "{\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          }" { (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar15 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar15 >> 0x18)" ( (binary_expression "(uint)uVar15 >> 0x18" (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 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)uVar15 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar15 >> 0x10)" ( (binary_expression "(uint)uVar15 >> 0x10" (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 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)uVar15 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar15 >> 8)" ( (binary_expression "(uint)uVar15 >> 8" (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar15;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar15" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar15" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar15._0_1_ = pEVar18->e_ident_class;" (assignment_expression "uVar15._0_1_ = pEVar18->e_ident_class" (field_expression "uVar15._0_1_" identifier . field_identifier) = (field_expression "pEVar18->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar15._1_1_ = pEVar18->e_ident_data;" (assignment_expression "uVar15._1_1_ = pEVar18->e_ident_data" (field_expression "uVar15._1_1_" identifier . field_identifier) = (field_expression "pEVar18->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar15._2_1_ = pEVar18->e_ident_version;" (assignment_expression "uVar15._2_1_ = pEVar18->e_ident_version" (field_expression "uVar15._2_1_" identifier . field_identifier) = (field_expression "pEVar18->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar15._3_1_ = pEVar18->e_ident_osabi;" (assignment_expression "uVar15._3_1_ = pEVar18->e_ident_osabi" (field_expression "uVar15._3_1_" identifier . field_identifier) = (field_expression "pEVar18->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 "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar18->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar18->e_ident_class" & (field_expression "pEVar18->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (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 *)(puVar37 + -0x50) + -1) = uVar15;" (assignment_expression "*(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15" (pointer_expression "*(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" * (cast_expression "(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" ( (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50)" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) ))))) + number_literal) )))) = identifier) ;) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" identifier = identifier) ;) }))) (labeled_statement "LAB_00031de0:\n        pEVar18 = param_6;" statement_identifier : (expression_statement "pEVar18 = param_6;" (assignment_expression "pEVar18 = param_6" identifier = identifier) ;)) (expression_statement "(**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));" (call_expression "(**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c))" (parenthesized_expression "(**(code **)(iVar16 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar16 + -0x7ae0)" * (pointer_expression "*(code **)(iVar16 + -0x7ae0)" * (cast_expression "(code **)(iVar16 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + -0x7ae0)" ( (binary_expression "iVar16 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(puVar37 + -0x6c)" * (cast_expression "(undefined4 *)(puVar37 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x6c)" ( (binary_expression "puVar37 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000318dc;" goto statement_identifier ;) })) (expression_statement "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (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        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\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._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }" { (expression_statement "uVar19._0_1_ = pEVar20->e_ident_magic_num;" (assignment_expression "uVar19._0_1_ = pEVar20->e_ident_magic_num" (field_expression "uVar19._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar19._1_1_ = pEVar20->e_ident_magic_str[0];" (assignment_expression "uVar19._1_1_ = pEVar20->e_ident_magic_str[0]" (field_expression "uVar19._1_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[0]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar19._2_1_ = pEVar20->e_ident_magic_str[1];" (assignment_expression "uVar19._2_1_ = pEVar20->e_ident_magic_str[1]" (field_expression "uVar19._2_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[1]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar19._3_1_ = pEVar20->e_ident_magic_str[2];" (assignment_expression "uVar19._3_1_ = pEVar20->e_ident_magic_str[2]" (field_expression "uVar19._3_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[2]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" identifier = identifier) ;) (expression_statement "pEVar18 = pEVar20;" (assignment_expression "pEVar18 = pEVar20" identifier = identifier) ;) (if_statement "if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }" if (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }" { (do_statement "do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);" do (compound_statement "{\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          }" { (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar19 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar19 >> 0x18)" ( (binary_expression "(uint)uVar19 >> 0x18" (cast_expression "(uint)uVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 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)uVar19 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar19 >> 0x10)" ( (binary_expression "(uint)uVar19 >> 0x10" (cast_expression "(uint)uVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 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)uVar19 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar19 >> 8)" ( (binary_expression "(uint)uVar19 >> 8" (cast_expression "(uint)uVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar19;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar19" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar19" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar19._0_1_ = pEVar18->e_ident_class;" (assignment_expression "uVar19._0_1_ = pEVar18->e_ident_class" (field_expression "uVar19._0_1_" identifier . field_identifier) = (field_expression "pEVar18->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar19._1_1_ = pEVar18->e_ident_data;" (assignment_expression "uVar19._1_1_ = pEVar18->e_ident_data" (field_expression "uVar19._1_1_" identifier . field_identifier) = (field_expression "pEVar18->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar19._2_1_ = pEVar18->e_ident_version;" (assignment_expression "uVar19._2_1_ = pEVar18->e_ident_version" (field_expression "uVar19._2_1_" identifier . field_identifier) = (field_expression "pEVar18->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar19._3_1_ = pEVar18->e_ident_osabi;" (assignment_expression "uVar19._3_1_ = pEVar18->e_ident_osabi" (field_expression "uVar19._3_1_" identifier . field_identifier) = (field_expression "pEVar18->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 "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar18->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar18->e_ident_class" & (field_expression "pEVar18->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar27 = (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 "pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar19 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar19 >> 0x18)" ( (binary_expression "(uint)uVar19 >> 0x18" (cast_expression "(uint)uVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 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)uVar19 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar19 >> 0x10)" ( (binary_expression "(uint)uVar19 >> 0x10" (cast_expression "(uint)uVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 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)uVar19 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar19 >> 8)" ( (binary_expression "(uint)uVar19 >> 8" (cast_expression "(uint)uVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar19;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar19" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar19" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_00031de0;" goto statement_identifier ;) })) (expression_statement "pEVar18 = param_6;" (assignment_expression "pEVar18 = param_6" identifier = identifier) ;) (expression_statement "(**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);" (call_expression "(**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27)" (parenthesized_expression "(**(code **)(iVar16 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar16 + -0x7ae0)" * (pointer_expression "*(code **)(iVar16 + -0x7ae0)" * (cast_expression "(code **)(iVar16 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + -0x7ae0)" ( (binary_expression "iVar16 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(param_6,param_6,0,pEVar27)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar29 = param_4;" (assignment_expression "pEVar29 = param_4" identifier = identifier) ;) (labeled_statement "LAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);" statement_identifier : (expression_statement "piVar14 = *(int **)(puVar37 + -0x54);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" identifier = (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }" statement_identifier : (if_statement "if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }" if (parenthesized_expression "(*piVar14 < 0)" ( (binary_expression "*piVar14 < 0" (pointer_expression "*piVar14" * identifier) < number_literal) )) (compound_statement "{\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 **)(puVar37 + -0x54);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x54)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x54)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puVar35 + -0x7a80))(param_1);" (call_expression "(**(code **)(puVar35 + -0x7a80))(param_1)" (parenthesized_expression "(**(code **)(puVar35 + -0x7a80))" ( (pointer_expression "**(code **)(puVar35 + -0x7a80)" * (pointer_expression "*(code **)(puVar35 + -0x7a80)" * (cast_expression "(code **)(puVar35 + -0x7a80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7a80)" ( (binary_expression "puVar35 + -0x7a80" identifier + number_literal) ))))) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" 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 *)(puVar37 + -0x54) + 4) = 0;\n      }" else (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      }" { (expression_statement "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar37 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar37 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar37 + -0x54) + 4" (pointer_expression "*(int *)(puVar37 + -0x54)" * (cast_expression "(int *)(puVar37 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) })))) }))) (labeled_statement "LAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);" statement_identifier : (expression_statement "piVar14 = *(int **)(puVar37 + -0x40);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x40)" identifier = (pointer_expression "*(int **)(puVar37 + -0x40)" * (cast_expression "(int **)(puVar37 + -0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x40)" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "piVar6 = *(int **)(puVar37 + -0x58);" (assignment_expression "piVar6 = *(int **)(puVar37 + -0x58)" identifier = (pointer_expression "*(int **)(puVar37 + -0x58)" * (cast_expression "(int **)(puVar37 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x58)" ( (binary_expression "puVar37 + -0x58" identifier + number_literal) ))))) ;) (if_statement "if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }" if (parenthesized_expression "(piVar14 != (int *)0x0)" ( (binary_expression "piVar14 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }" { (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7a28);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7a28)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7a28)" * (cast_expression "(code **)(puVar35 + -0x7a28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7a28)" ( (binary_expression "puVar35 + -0x7a28" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00031708;" goto statement_identifier ;) })) }) (else_clause "else {\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }" else (compound_statement "{\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }" { (expression_statement "pcVar39 = *(code **)(puVar34 + 0x6c110);" (assignment_expression "pcVar39 = *(code **)(puVar34 + 0x6c110)" identifier = (pointer_expression "*(code **)(puVar34 + 0x6c110)" * (cast_expression "(code **)(puVar34 + 0x6c110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar34 + 0x6c110)" ( (binary_expression "puVar34 + 0x6c110" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x3c)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x3c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x3c)" ( (binary_expression "puVar37 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar37 + -0x34) = 1;" (assignment_expression "*(undefined4 *)(puVar37 + -0x34) = 1" (pointer_expression "*(undefined4 *)(puVar37 + -0x34)" * (cast_expression "(undefined4 *)(puVar37 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x34)" ( (binary_expression "puVar37 + -0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;" (assignment_expression "*(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c" (pointer_expression "*(undefined1 **)(puVar37 + -0x30)" * (cast_expression "(undefined1 **)(puVar37 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x30)" ( (binary_expression "puVar37 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar37 + -0x3c" identifier + number_literal)) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);" statement_identifier : (expression_statement "piVar6 = *(int **)(puVar37 + -0x58);" (assignment_expression "piVar6 = *(int **)(puVar37 + -0x58)" identifier = (pointer_expression "*(int **)(puVar37 + -0x58)" * (cast_expression "(int **)(puVar37 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x58)" ( (binary_expression "puVar37 + -0x58" identifier + number_literal) ))))) ;)) }))) (if_statement "if (*(int *)(puVar37 + -0x2c) == *piVar6) {\n    return *piVar6;\n  }" if (parenthesized_expression "(*(int *)(puVar37 + -0x2c) == *piVar6)" ( (binary_expression "*(int *)(puVar37 + -0x2c) == *piVar6" (pointer_expression "*(int *)(puVar37 + -0x2c)" * (cast_expression "(int *)(puVar37 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x2c)" ( (binary_expression "puVar37 + -0x2c" identifier + number_literal) )))) == (pointer_expression "*piVar6" * identifier)) )) (compound_statement "{\n    return *piVar6;\n  }" { (return_statement "return *piVar6;" return (pointer_expression "*piVar6" * identifier) ;) })) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7b70);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7b70)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7b70)" * (cast_expression "(code **)(puVar35 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7b70)" ( (binary_expression "puVar35 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = 0x3206c;" (assignment_expression "uVar25 = 0x3206c" identifier = number_literal) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar36 = pcVar39 + 0x72fd0;" (assignment_expression "pcVar36 = pcVar39 + 0x72fd0" identifier = (binary_expression "pcVar39 + 0x72fd0" identifier + number_literal)) ;) (expression_statement "puVar10 = puVar3 + -0x38;" (assignment_expression "puVar10 = puVar3 + -0x38" identifier = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29" (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 "piVar6 = *(int **)(pcVar39 + 0x6b4d0);" (assignment_expression "piVar6 = *(int **)(pcVar39 + 0x6b4d0)" identifier = (pointer_expression "*(int **)(pcVar39 + 0x6b4d0)" * (cast_expression "(int **)(pcVar39 + 0x6b4d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x6b4d0)" ( (binary_expression "pcVar39 + 0x6b4d0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8;" (assignment_expression "*(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8" (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 "puVar37 + -0xa8" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28" (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) = uVar25;" (assignment_expression "*(undefined4 *)(puVar3 + -4) = uVar25" (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) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar30" (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) = pcVar36;" (assignment_expression "*(code **)(puVar3 + -0x28) = pcVar36" (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 < pEVar18) {\n    if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);\n    pcVar36 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);\n    uVar17 = 8;\n    do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);\n    if (uVar42 == 0) {\n      trap(7);\n    }\n    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    iVar13 = 0;\n    uVar43 = 1;\n    iVar11 = 0;\n    uVar17 = 0;\n    uVar42 = 6;\n    do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);\n    if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    piVar31 = *(int **)(puVar3 + -0x20);\n    if (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }" if (parenthesized_expression "((Elf32_Ehdr *)&DAT_00000004 < pEVar18)" ( (binary_expression "(Elf32_Ehdr *)&DAT_00000004 < pEVar18" (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 (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);\n    pcVar36 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);\n    uVar17 = 8;\n    do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);\n    if (uVar42 == 0) {\n      trap(7);\n    }\n    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    iVar13 = 0;\n    uVar43 = 1;\n    iVar11 = 0;\n    uVar17 = 0;\n    uVar42 = 6;\n    do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);\n    if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    piVar31 = *(int **)(puVar3 + -0x20);\n    if (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n  }" { (if_statement "if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }" if (parenthesized_expression "(*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1))" ( (binary_expression "*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)" (pointer_expression "*piVar14" * identifier) < (cast_expression "(int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)" ( (binary_expression "((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1" (binary_expression "((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6)" (parenthesized_expression "((uint)pEVar18 >> 5)" ( (binary_expression "(uint)pEVar18 >> 5" (cast_expression "(uint)pEVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (parenthesized_expression "((uint)pEVar18 >> 6)" ( (binary_expression "(uint)pEVar18 >> 6" (cast_expression "(uint)pEVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) + number_literal) )))) )) (compound_statement "{\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))()" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))()" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x6b550))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x6b550))" ( (pointer_expression "**(code **)(pcVar39 + 0x6b550)" * (pointer_expression "*(code **)(pcVar39 + 0x6b550)" * (cast_expression "(code **)(pcVar39 + 0x6b550)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x6b550)" ( (binary_expression "pcVar39 + 0x6b550" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar36 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar36 = *(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      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }" else (compound_statement "{\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)piVar14[2];" (assignment_expression "pEVar30 = (Elf32_Ehdr *)piVar14[2]" identifier = (cast_expression "(Elf32_Ehdr *)piVar14[2]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar14[2]" identifier [ number_literal ]))) ;) }))) (expression_statement "iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);" (assignment_expression "iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18)" identifier = (call_expression "(**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18)" (parenthesized_expression "(**(code **)(pcVar36 + -0x7efc))" ( (pointer_expression "**(code **)(pcVar36 + -0x7efc)" * (pointer_expression "*(code **)(pcVar36 + -0x7efc)" * (cast_expression "(code **)(pcVar36 + -0x7efc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + -0x7efc)" ( (binary_expression "pcVar36 + -0x7efc" identifier + number_literal) ))))) )) (argument_list "(pEVar30,pEVar18)" ( identifier , identifier )))) ;) (expression_statement "pcVar36 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar36 = *(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 *)(pcVar36 + -0x7c6c) + 0x1c);" (assignment_expression "puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + -0x7c6c) + 0x1c)" ( (binary_expression "*(int *)(pcVar36 + -0x7c6c) + 0x1c" (pointer_expression "*(int *)(pcVar36 + -0x7c6c)" * (cast_expression "(int *)(pcVar36 + -0x7c6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + -0x7c6c)" ( (binary_expression "pcVar36 + -0x7c6c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar17 = 8;" (assignment_expression "uVar17 = 8" identifier = number_literal) ;) (do_statement "do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);" do (compound_statement "{\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    }" { (expression_statement "uVar42 = uVar17;" (assignment_expression "uVar42 = uVar17" identifier = identifier) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar28 = (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 "uVar17 = uVar42 - 1;" (assignment_expression "uVar17 = uVar42 - 1" identifier = (binary_expression "uVar42 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(pEVar28 < pEVar18)" ( (binary_expression "pEVar28 < pEVar18" identifier < identifier) )) ;) (if_statement "if (uVar42 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar42 == 0)" ( (binary_expression "uVar42 == 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 "uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;" (assignment_expression "uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4" identifier = (binary_expression "((iVar11 + 1U) / uVar42 + 1) * 4" (parenthesized_expression "((iVar11 + 1U) / uVar42 + 1)" ( (binary_expression "(iVar11 + 1U) / uVar42 + 1" (binary_expression "(iVar11 + 1U) / uVar42" (parenthesized_expression "(iVar11 + 1U)" ( (binary_expression "iVar11 + 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 (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(uVar17 < 0x7f01)" ( (binary_expression "uVar17 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }" { (expression_statement "iVar11 = -(uVar17 + 7 & 0xfffffff8);" (assignment_expression "iVar11 = -(uVar17 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar17 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar17 + 7 & 0xfffffff8)" ( (binary_expression "uVar17 + 7 & 0xfffffff8" (binary_expression "uVar17 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar10 = puVar3 + iVar11 + -0x38;" (assignment_expression "puVar10 = puVar3 + iVar11 + -0x38" identifier = (binary_expression "puVar3 + iVar11 + -0x38" (binary_expression "puVar3 + iVar11" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar11 + -0x28)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar11 + -0x28)" ( (binary_expression "puVar3 + iVar11 + -0x28" (binary_expression "puVar3 + iVar11" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" else (compound_statement "{\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20)" (parenthesized_expression "(**(code **)(pcVar36 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar36 + -0x7d50)" * (pointer_expression "*(code **)(pcVar36 + -0x7d50)" * (cast_expression "(code **)(pcVar36 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + -0x7d50)" ( (binary_expression "pcVar36 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar3 + -0x20)" ( (binary_expression "puVar3 + -0x20" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar36 = *(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 "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar43 = 1;" (assignment_expression "uVar43 = 1" identifier = number_literal) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar42 = 6;" (assignment_expression "uVar42 = 6" identifier = number_literal) ;) (do_statement "do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);" do (compound_statement "{\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    }" { (expression_statement "uVar41 = uVar17 + 1;" (assignment_expression "uVar41 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = iVar11;" (assignment_expression "iVar16 = iVar11" identifier = identifier) ;) (expression_statement "uVar8 = uVar42;" (assignment_expression "uVar8 = uVar42" identifier = identifier) ;) (if_statement "if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }" if (parenthesized_expression "((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0)" ( (binary_expression "(uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0" (parenthesized_expression "(uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1))" ( (binary_expression "uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)" identifier & (pointer_expression "*(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)" * (cast_expression "(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (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) ))))) )) == number_literal) )) (compound_statement "{\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }" { (expression_statement "uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;" (assignment_expression "uVar8 = (uVar41 & 1) + 1 + uVar41 * 3" identifier = (binary_expression "(uVar41 & 1) + 1 + uVar41 * 3" (binary_expression "(uVar41 & 1) + 1" (parenthesized_expression "(uVar41 & 1)" ( (binary_expression "uVar41 & 1" identifier & number_literal) )) + number_literal) + (binary_expression "uVar41 * 3" identifier * number_literal))) ;) (if_statement "if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }" if (parenthesized_expression "((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20)" ( (binary_expression "(ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20" (binary_expression "(ulonglong)uVar42 * ZEXT48(pEVar18)" (cast_expression "(ulonglong)uVar42" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(pEVar18)" identifier (argument_list "(pEVar18)" ( identifier )))) >> number_literal) ))) == number_literal) )) (compound_statement "{\n          uVar8 = uVar42 * uVar8;\n        }" { (expression_statement "uVar8 = uVar42 * uVar8;" (assignment_expression "uVar8 = uVar42 * uVar8" identifier = (binary_expression "uVar42 * uVar8" identifier * identifier)) ;) }) (else_clause "else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }" else (compound_statement "{\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }" { (expression_statement "iVar16 = iVar11 + 1;" (assignment_expression "iVar16 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;" (assignment_expression "*(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42" (pointer_expression "*(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1)" * (cast_expression "(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar28->e_ident_magic_str + iVar11 * 4 + -1)" ( (binary_expression "pEVar28->e_ident_magic_str + iVar11 * 4 + -1" (binary_expression "pEVar28->e_ident_magic_str + iVar11 * 4" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar11 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) }))) })) (expression_statement "uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);" (assignment_expression "uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f)" identifier = (binary_expression "uVar43 * 2 - ((int)uVar43 >> 0x1f)" (binary_expression "uVar43 * 2" identifier * number_literal) - (parenthesized_expression "((int)uVar43 >> 0x1f)" ( (binary_expression "(int)uVar43 >> 0x1f" (cast_expression "(int)uVar43" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;" (assignment_expression "bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3" identifier = (binary_expression "uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3" identifier != (binary_expression "((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3" (parenthesized_expression "((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1)" ( (binary_expression "(uint)((int)&pEVar18[-1].e_shentsize + 1) | 1" (call_expression "(uint)((int)&pEVar18[-1].e_shentsize + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)&pEVar18[-1].e_shentsize + 1)" ( (binary_expression "(int)&pEVar18[-1].e_shentsize + 1" (cast_expression "(int)&pEVar18[-1].e_shentsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar18[-1].e_shentsize" & (field_expression "pEVar18[-1].e_shentsize" (subscript_expression "pEVar18[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) | number_literal) )) / number_literal))) ;) (expression_statement "iVar13 = iVar13 + (uVar43 & 1);" (assignment_expression "iVar13 = iVar13 + (uVar43 & 1)" identifier = (binary_expression "iVar13 + (uVar43 & 1)" identifier + (parenthesized_expression "(uVar43 & 1)" ( (binary_expression "uVar43 & 1" identifier & number_literal) )))) ;) (expression_statement "iVar11 = iVar16;" (assignment_expression "iVar11 = iVar16" identifier = identifier) ;) (expression_statement "uVar17 = uVar41;" (assignment_expression "uVar17 = uVar41" identifier = identifier) ;) (expression_statement "uVar42 = uVar8;" (assignment_expression "uVar42 = uVar8" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (if_statement "if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }" { (expression_statement "*(uint *)piVar14[2] = uVar8;" (assignment_expression "*(uint *)piVar14[2] = uVar8" (pointer_expression "*(uint *)piVar14[2]" * (cast_expression "(uint *)piVar14[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar14[2]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "piVar14[1] = 1;" (assignment_expression "piVar14[1] = 1" (subscript_expression "piVar14[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" else (compound_statement "{\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pcVar39 = *(code **)(pcVar36 + -0x7dbc);" (assignment_expression "pcVar39 = *(code **)(pcVar36 + -0x7dbc)" identifier = (pointer_expression "*(code **)(pcVar36 + -0x7dbc)" * (cast_expression "(code **)(pcVar36 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + -0x7dbc)" ( (binary_expression "pcVar36 + -0x7dbc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;" (assignment_expression "*(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8" (pointer_expression "*(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1)" * (cast_expression "(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar28->e_ident_magic_str + iVar16 * 4 + -1)" ( (binary_expression "pEVar28->e_ident_magic_str + iVar16 * 4 + -1" (binary_expression "pEVar28->e_ident_magic_str + iVar16 * 4" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar16 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar39)(piVar14,pEVar28,iVar16 + 1);" (call_expression "(*pcVar39)(piVar14,pEVar28,iVar16 + 1)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(piVar14,pEVar28,iVar16 + 1)" ( identifier , identifier , (binary_expression "iVar16 + 1" identifier + number_literal) ))) ;) (expression_statement "pcVar36 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar36 = *(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 "piVar31 = *(int **)(puVar3 + -0x20);" (assignment_expression "piVar31 = *(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 (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(piVar31 != (int *)0x0)" ( (binary_expression "piVar31 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "(**(code **)(pcVar36 + -0x7a28))();" (call_expression "(**(code **)(pcVar36 + -0x7a28))()" (parenthesized_expression "(**(code **)(pcVar36 + -0x7a28))" ( (pointer_expression "**(code **)(pcVar36 + -0x7a28)" * (pointer_expression "*(code **)(pcVar36 + -0x7a28)" * (cast_expression "(code **)(pcVar36 + -0x7a28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + -0x7a28)" ( (binary_expression "pcVar36 + -0x7a28" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar36 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar36 = *(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)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }" else (compound_statement "{\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750)" ( (binary_expression "(int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750" (binary_expression "(int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc)" (binary_expression "(int)pEVar18 * 4" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(pcVar39 + 0x6affc)" * (cast_expression "(int *)(pcVar39 + 0x6affc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x6affc)" ( (binary_expression "pcVar39 + 0x6affc" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "*(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;" (assignment_expression "*(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27" (pointer_expression "*(undefined4 *)piVar14[2]" * (cast_expression "(undefined4 *)piVar14[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar14[2]" identifier [ number_literal ]))) = (pointer_expression "*(undefined4 *)pEVar27" * (cast_expression "(undefined4 *)pEVar27" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar14[1] = 1;" (assignment_expression "piVar14[1] = 1" (subscript_expression "piVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar31 = piVar14;" (assignment_expression "piVar31 = piVar14" identifier = identifier) ;) (expression_statement "pEVar28 = pEVar18;" (assignment_expression "pEVar28 = pEVar18" identifier = identifier) ;) (expression_statement "pEVar18 = pEVar27;" (assignment_expression "pEVar18 = pEVar27" identifier = identifier) ;) (expression_statement "puVar10 = puVar3 + -0x38;" (assignment_expression "puVar10 = puVar3 + -0x38" identifier = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) }))) (if_statement "if (*(int *)(puVar3 + -0x1c) == *piVar6) {\n    return *piVar6;\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 *piVar6;\n  }" { (return_statement "return *piVar6;" return (pointer_expression "*piVar6" * identifier) ;) })) (expression_statement "pcVar39 = *(code **)(pcVar36 + -0x7b70);" (assignment_expression "pcVar39 = *(code **)(pcVar36 + -0x7b70)" identifier = (pointer_expression "*(code **)(pcVar36 + -0x7b70)" * (cast_expression "(code **)(pcVar36 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + -0x7b70)" ( (binary_expression "pcVar36 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "pcVar40 = __gmpz_probab_prime_p;" (assignment_expression "pcVar40 = __gmpz_probab_prime_p" identifier = identifier) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar36 = *(code **)(pcVar39 + 0x6ae78);" (assignment_expression "pcVar36 = *(code **)(pcVar39 + 0x6ae78)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x6ae78)" * (cast_expression "(code **)(pcVar39 + 0x6ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x6ae78)" ( (binary_expression "pcVar39 + 0x6ae78" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar10 + -0x24) = piVar14;" (assignment_expression "*(int **)(puVar10 + -0x24) = piVar14" (pointer_expression "*(int **)(puVar10 + -0x24)" * (cast_expression "(int **)(puVar10 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x24)" ( (binary_expression "puVar10 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar10 + -0x20) = piVar6;" (assignment_expression "*(int **)(puVar10 + -0x20) = piVar6" (pointer_expression "*(int **)(puVar10 + -0x20)" * (cast_expression "(int **)(puVar10 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x20)" ( (binary_expression "puVar10 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar14 = *(int **)(pcVar39 + 0x6b270);" (assignment_expression "piVar14 = *(int **)(pcVar39 + 0x6b270)" identifier = (pointer_expression "*(int **)(pcVar39 + 0x6b270)" * (cast_expression "(int **)(pcVar39 + 0x6b270)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x6b270)" ( (binary_expression "pcVar39 + 0x6b270" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x1c)" ( (binary_expression "puVar10 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70;" (assignment_expression "*(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70" (pointer_expression "*(code **)(puVar10 + -0x88)" * (cast_expression "(code **)(puVar10 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) )))) = (binary_expression "pcVar39 + 0x72d70" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x14) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x14) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x28)" ( (binary_expression "puVar10 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar10 + -4) = pcVar40;" (assignment_expression "*(code **)(puVar10 + -4) = pcVar40" (pointer_expression "*(code **)(puVar10 + -4)" * (cast_expression "(code **)(puVar10 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar10 + -8) = puVar3 + -0x38;" (assignment_expression "*(undefined1 **)(puVar10 + -8) = puVar3 + -0x38" (pointer_expression "*(undefined1 **)(puVar10 + -8)" * (cast_expression "(undefined1 **)(puVar10 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0xc) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0xc) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + -0x2c) = *piVar14;" (assignment_expression "*(int *)(puVar10 + -0x2c) = *piVar14" (pointer_expression "*(int *)(puVar10 + -0x2c)" * (cast_expression "(int *)(puVar10 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x2c)" ( (binary_expression "puVar10 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "iVar11 = (*pcVar36)();" (assignment_expression "iVar11 = (*pcVar36)()" identifier = (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "puVar33 = (uint *)piVar31[2];" (assignment_expression "puVar33 = (uint *)piVar31[2]" identifier = (cast_expression "(uint *)piVar31[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar31[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)piVar31[1];" (assignment_expression "pEVar32 = (Elf32_Ehdr *)piVar31[1]" identifier = (cast_expression "(Elf32_Ehdr *)piVar31[1]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar31[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar17 = *puVar33;" (assignment_expression "uVar17 = *puVar33" identifier = (pointer_expression "*puVar33" * identifier)) ;) (if_statement "if (iVar11 < 1) {\n    pEVar20 = (Elf32_Ehdr *)0xf4240;\n    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);\n    iVar13 = *(int *)(puVar10 + -0x88);\n    if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;\n    *(uint **)(puVar10 + -0x6c) = puVar33;\n    piVar31 = (int *)(puVar10 + -0x74);\n    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;\n  }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n    pEVar20 = (Elf32_Ehdr *)0xf4240;\n    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);\n    iVar13 = *(int *)(puVar10 + -0x88);\n    if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;\n    *(uint **)(puVar10 + -0x6c) = puVar33;\n    piVar31 = (int *)(puVar10 + -0x74);\n    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;\n  }" { (expression_statement "pEVar20 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);" (assignment_expression "iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31)" identifier = (call_expression "(**(code **)(iVar13 + -0x7ab4))(piVar31)" (parenthesized_expression "(**(code **)(iVar13 + -0x7ab4))" ( (pointer_expression "**(code **)(iVar13 + -0x7ab4)" * (pointer_expression "*(code **)(iVar13 + -0x7ab4)" * (cast_expression "(code **)(iVar13 + -0x7ab4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7ab4)" ( (binary_expression "iVar13 + -0x7ab4" identifier + number_literal) ))))) )) (argument_list "(piVar31)" ( identifier )))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (if_statement "if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }" 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)) )) (compound_statement "{\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }" { (if_statement "if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }" if (parenthesized_expression "(uVar17 < 3)" ( (binary_expression "uVar17 < 3" identifier < number_literal) )) (compound_statement "{\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }" { (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" identifier = number_literal) ;) (if_statement "if (uVar17 != 2) {\n            iVar11 = 0;\n          }" if (parenthesized_expression "(uVar17 != 2)" ( (binary_expression "uVar17 != 2" identifier != number_literal) )) (compound_statement "{\n            iVar11 = 0;\n          }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }" else (compound_statement "{\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }" { (expression_statement "uVar42 = 3;" (assignment_expression "uVar42 = 3" identifier = number_literal) ;) (if_statement "if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }" if (parenthesized_expression "((uVar17 & 1) != 0)" ( (binary_expression "(uVar17 & 1) != 0" (parenthesized_expression "(uVar17 & 1)" ( (binary_expression "uVar17 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }" { (do_statement "do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);" do (compound_statement "{\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            }" { (if_statement "if (uVar42 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar42 == 0)" ( (binary_expression "uVar42 == 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 = uVar17 % uVar42;" (assignment_expression "uVar43 = uVar17 % uVar42" identifier = (binary_expression "uVar17 % uVar42" identifier % identifier)) ;) (if_statement "if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }" if (parenthesized_expression "(uVar17 / uVar42 < uVar42)" ( (binary_expression "uVar17 / uVar42 < uVar42" (binary_expression "uVar17 / uVar42" identifier / identifier) < identifier) )) (compound_statement "{\n                iVar11 = 2;\n                goto LAB_00032354;\n              }" { (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_00032354;" goto statement_identifier ;) })) (expression_statement "uVar42 = uVar42 + 2;" (assignment_expression "uVar42 = uVar42 + 2" identifier = (binary_expression "uVar42 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar43 != 0)" ( (binary_expression "uVar43 != 0" identifier != number_literal) )) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) })) }))) })) (goto_statement "goto LAB_00032354;" goto statement_identifier ;) })) (expression_statement "pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)-(int)pEVar32" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar32" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar32" - (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "*(uint **)(puVar10 + -0x6c) = puVar33;" (assignment_expression "*(uint **)(puVar10 + -0x6c) = puVar33" (pointer_expression "*(uint **)(puVar10 + -0x6c)" * (cast_expression "(uint **)(puVar10 + -0x6c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x6c)" ( (binary_expression "puVar10 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar31 = (int *)(puVar10 + -0x74);" (assignment_expression "piVar31 = (int *)(puVar10 + -0x74)" identifier = (cast_expression "(int *)(puVar10 + -0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x74)" ( (binary_expression "puVar10 + -0x74" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x70)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x70)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x70)" ( (binary_expression "puVar10 + -0x70" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (pEVar32 != (Elf32_Ehdr *)0x0) {\n    uVar17 = uVar17 & 1;\n    iVar11 = 0;\n    if (uVar17 == 0) goto LAB_00032354;\n    pEVar20 = pEVar32;\n    if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }\n  }" 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)) )) (compound_statement "{\n    uVar17 = uVar17 & 1;\n    iVar11 = 0;\n    if (uVar17 == 0) goto LAB_00032354;\n    pEVar20 = pEVar32;\n    if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }\n  }" { (expression_statement "uVar17 = uVar17 & 1;" (assignment_expression "uVar17 = uVar17 & 1" identifier = (binary_expression "uVar17 & 1" identifier & number_literal)) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (if_statement "if (uVar17 == 0) goto LAB_00032354;" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00032354;" goto statement_identifier ;)) (expression_statement "pEVar20 = pEVar32;" (assignment_expression "pEVar20 = pEVar32" identifier = identifier) ;) (if_statement "if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }" if (parenthesized_expression "((int)pEVar32 < 10)" ( (binary_expression "(int)pEVar32 < 10" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }" { (expression_statement "uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);" (assignment_expression "uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c)" identifier = (call_expression "(**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c)" (parenthesized_expression "(**(code **)(iVar13 + -0x7c24))" ( (pointer_expression "**(code **)(iVar13 + -0x7c24)" * (pointer_expression "*(code **)(iVar13 + -0x7c24)" * (cast_expression "(code **)(iVar13 + -0x7c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7c24)" ( (binary_expression "iVar13 + -0x7c24" identifier + number_literal) ))))) )) (argument_list "(puVar33,pEVar32,0xc0cfd797,0x53e5645c)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }" else (compound_statement "{\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }" { (expression_statement "uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);" (assignment_expression "uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797)" identifier = (call_expression "(**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797)" (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 "(puVar33,pEVar32,0xc0cfd797)" ( identifier , identifier , number_literal )))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) }))) (if_statement "if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }" if (parenthesized_expression "((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d))" ( (binary_expression "(((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)" (parenthesized_expression "(((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17))))))" ( (binary_expression "((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))" (parenthesized_expression "((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd))))" ( (binary_expression "(((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))" (parenthesized_expression "(((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7))" ( (binary_expression "((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)" (parenthesized_expression "((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5))" ( (binary_expression "(uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)" (parenthesized_expression "(uVar42 != (uVar42 / 3) * 3)" ( (binary_expression "uVar42 != (uVar42 / 3) * 3" identifier != (binary_expression "(uVar42 / 3) * 3" (parenthesized_expression "(uVar42 / 3)" ( (binary_expression "uVar42 / 3" identifier / number_literal) )) * number_literal)) )) && (parenthesized_expression "(uVar42 != (uVar42 / 5) * 5)" ( (binary_expression "uVar42 != (uVar42 / 5) * 5" identifier != (binary_expression "(uVar42 / 5) * 5" (parenthesized_expression "(uVar42 / 5)" ( (binary_expression "uVar42 / 5" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "(uVar42 != (uVar42 / 7) * 7)" ( (binary_expression "uVar42 != (uVar42 / 7) * 7" identifier != (binary_expression "(uVar42 / 7) * 7" (parenthesized_expression "(uVar42 / 7)" ( (binary_expression "uVar42 / 7" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))" ( (parenthesized_expression "(uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd))" ( (binary_expression "uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)" (binary_expression "uVar42 != (uVar42 / 0xb) * 0xb" identifier != (binary_expression "(uVar42 / 0xb) * 0xb" (parenthesized_expression "(uVar42 / 0xb)" ( (binary_expression "uVar42 / 0xb" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar42 != (uVar42 / 0xd) * 0xd)" ( (binary_expression "uVar42 != (uVar42 / 0xd) * 0xd" identifier != (binary_expression "(uVar42 / 0xd) * 0xd" (parenthesized_expression "(uVar42 / 0xd)" ( (binary_expression "uVar42 / 0xd" identifier / number_literal) )) * number_literal)) ))) )) ))) )) && (parenthesized_expression "((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))" ( (parenthesized_expression "(uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17))))" ( (binary_expression "uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))" (binary_expression "uVar42 != (uVar42 / 0x11) * 0x11" identifier != (binary_expression "(uVar42 / 0x11) * 0x11" (parenthesized_expression "(uVar42 / 0x11)" ( (binary_expression "uVar42 / 0x11" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))" ( (parenthesized_expression "(uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17))" ( (binary_expression "uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)" (binary_expression "uVar42 != (uVar42 / 0x13) * 0x13" identifier != (binary_expression "(uVar42 / 0x13) * 0x13" (parenthesized_expression "(uVar42 / 0x13)" ( (binary_expression "uVar42 / 0x13" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar42 != (uVar42 / 0x17) * 0x17)" ( (binary_expression "uVar42 != (uVar42 / 0x17) * 0x17" identifier != (binary_expression "(uVar42 / 0x17) * 0x17" (parenthesized_expression "(uVar42 / 0x17)" ( (binary_expression "uVar42 / 0x17" identifier / number_literal) )) * number_literal)) ))) )) ))) )) ))) )) && (parenthesized_expression "(uVar42 != (uVar42 / 0x1d) * 0x1d)" ( (binary_expression "uVar42 != (uVar42 / 0x1d) * 0x1d" identifier != (binary_expression "(uVar42 / 0x1d) * 0x1d" (parenthesized_expression "(uVar42 / 0x1d)" ( (binary_expression "uVar42 / 0x1d" identifier / number_literal) )) * number_literal)) ))) )) (compound_statement "{\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }" { (expression_statement "uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);" (assignment_expression "uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2)" identifier = (call_expression "(**(code **)(iVar13 + -0x7f14))(piVar31,2)" (parenthesized_expression "(**(code **)(iVar13 + -0x7f14))" ( (pointer_expression "**(code **)(iVar13 + -0x7f14)" * (pointer_expression "*(code **)(iVar13 + -0x7f14)" * (cast_expression "(code **)(iVar13 + -0x7f14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7f14)" ( (binary_expression "iVar13 + -0x7f14" identifier + number_literal) ))))) )) (argument_list "(piVar31,2)" ( identifier , number_literal )))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }" if (parenthesized_expression "(0x1f < uVar42)" ( (binary_expression "0x1f < uVar42" number_literal < identifier) )) (compound_statement "{\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar43 = 0x1f;" (assignment_expression "uVar43 = 0x1f" identifier = number_literal) ;) (do_statement "do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);" do (compound_statement "{\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        }" { (expression_statement "uVar8 = 3;" (assignment_expression "uVar8 = 3" identifier = number_literal) ;) (do_statement "do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);" do (compound_statement "{\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          }" { (if_statement "if (uVar8 == 0) {\n              trap(7);\n            }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 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 "uVar41 = uVar43 % uVar8;" (assignment_expression "uVar41 = uVar43 % uVar8" identifier = (binary_expression "uVar43 % uVar8" identifier % identifier)) ;) (if_statement "if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }" if (parenthesized_expression "(uVar43 / uVar8 < uVar8)" ( (binary_expression "uVar43 / uVar8 < uVar8" (binary_expression "uVar43 / uVar8" identifier / identifier) < identifier) )) (compound_statement "{\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }" { (if_statement "if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }" if (parenthesized_expression "(iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0)" ( (binary_expression "iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0" (binary_expression "iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20)" (binary_expression "iVar16 * uVar17" identifier * identifier) + (cast_expression "(int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20)" ( (binary_expression "(ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20" (binary_expression "(ulonglong)uVar17 * (ulonglong)uVar43" (cast_expression "(ulonglong)uVar17" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar43" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) )))) == number_literal) )) (compound_statement "{\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }" { (expression_statement "iVar26 = iVar11 + 1;" (assignment_expression "iVar26 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);" (assignment_expression "uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43)" identifier = (call_expression "(uint)((ulonglong)uVar17 * (ulonglong)uVar43)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar17 * (ulonglong)uVar43)" ( (binary_expression "(ulonglong)uVar17 * (ulonglong)uVar43" (cast_expression "(ulonglong)uVar17" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar43" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ;) }) (else_clause "else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }" else (compound_statement "{\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }" { (expression_statement "*(uint *)(puVar10 + -0x7c) = uVar42;" (assignment_expression "*(uint *)(puVar10 + -0x7c) = uVar42" (pointer_expression "*(uint *)(puVar10 + -0x7c)" * (cast_expression "(uint *)(puVar10 + -0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x7c)" ( (binary_expression "puVar10 + -0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + -0x80) = iVar11;" (assignment_expression "*(int *)(puVar10 + -0x80) = iVar11" (pointer_expression "*(int *)(puVar10 + -0x80)" * (cast_expression "(int *)(puVar10 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x80)" ( (binary_expression "puVar10 + -0x80" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }" if (parenthesized_expression "((int)pEVar32 < 10)" ( (binary_expression "(int)pEVar32 < 10" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }" { (expression_statement "uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);" (assignment_expression "uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0)" identifier = (call_expression "(**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,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 "(puVar33,pEVar32,uVar17,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar10 + -0x80);" (assignment_expression "iVar11 = *(int *)(puVar10 + -0x80)" identifier = (pointer_expression "*(int *)(puVar10 + -0x80)" * (cast_expression "(int *)(puVar10 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x80)" ( (binary_expression "puVar10 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "uVar42 = *(uint *)(puVar10 + -0x7c);" (assignment_expression "uVar42 = *(uint *)(puVar10 + -0x7c)" identifier = (pointer_expression "*(uint *)(puVar10 + -0x7c)" * (cast_expression "(uint *)(puVar10 + -0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x7c)" ( (binary_expression "puVar10 + -0x7c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }" else (compound_statement "{\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }" { (expression_statement "uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);" (assignment_expression "uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17)" identifier = (call_expression "(**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17)" (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 "(puVar33,pEVar32,uVar17)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar42 = *(uint *)(puVar10 + -0x7c);" (assignment_expression "uVar42 = *(uint *)(puVar10 + -0x7c)" identifier = (pointer_expression "*(uint *)(puVar10 + -0x7c)" * (cast_expression "(uint *)(puVar10 + -0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x7c)" ( (binary_expression "puVar10 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar10 + -0x80);" (assignment_expression "iVar11 = *(int *)(puVar10 + -0x80)" identifier = (pointer_expression "*(int *)(puVar10 + -0x80)" * (cast_expression "(int *)(puVar10 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x80)" ( (binary_expression "puVar10 + -0x80" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar17 = uVar43;" (assignment_expression "uVar17 = uVar43" identifier = identifier) ;) (if_statement "if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }" if (parenthesized_expression "(iVar11 + -1 != -1)" ( (binary_expression "iVar11 + -1 != -1" (binary_expression "iVar11 + -1" identifier + number_literal) != number_literal) )) (compound_statement "{\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }" { (if_statement "if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -1) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -1) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -1) * 4" identifier + (binary_expression "(iVar11 + -1) * 4" (parenthesized_expression "(iVar11 + -1)" ( (binary_expression "iVar11 + -1" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    trap(7);\n                  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -1) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -1) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -1) * 4" identifier + (binary_expression "(iVar11 + -1) * 4" (parenthesized_expression "(iVar11 + -1)" ( (binary_expression "iVar11 + -1" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" { (if_statement "if (iVar11 + -2 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -2 == -1)" ( (binary_expression "iVar11 + -2 == -1" (binary_expression "iVar11 + -2" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -2) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -2) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -2) * 4" identifier + (binary_expression "(iVar11 + -2) * 4" (parenthesized_expression "(iVar11 + -2)" ( (binary_expression "iVar11 + -2" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                      trap(7);\n                    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -2) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -2) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -2) * 4" identifier + (binary_expression "(iVar11 + -2) * 4" (parenthesized_expression "(iVar11 + -2)" ( (binary_expression "iVar11 + -2" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" { (if_statement "if (iVar11 + -3 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -3 == -1)" ( (binary_expression "iVar11 + -3 == -1" (binary_expression "iVar11 + -3" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -3) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -3) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -3) * 4" identifier + (binary_expression "(iVar11 + -3) * 4" (parenthesized_expression "(iVar11 + -3)" ( (binary_expression "iVar11 + -3" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                        trap(7);\n                      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -3) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -3) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -3) * 4" identifier + (binary_expression "(iVar11 + -3) * 4" (parenthesized_expression "(iVar11 + -3)" ( (binary_expression "iVar11 + -3" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" { (if_statement "if (iVar11 + -4 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -4 == -1)" ( (binary_expression "iVar11 + -4 == -1" (binary_expression "iVar11 + -4" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -4) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -4) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -4) * 4" identifier + (binary_expression "(iVar11 + -4) * 4" (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                          trap(7);\n                        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -4) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -4) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -4) * 4" identifier + (binary_expression "(iVar11 + -4) * 4" (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" { (if_statement "if (iVar11 + -5 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -5 == -1)" ( (binary_expression "iVar11 + -5 == -1" (binary_expression "iVar11 + -5" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -5) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -5) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -5) * 4" identifier + (binary_expression "(iVar11 + -5) * 4" (parenthesized_expression "(iVar11 + -5)" ( (binary_expression "iVar11 + -5" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                            trap(7);\n                          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -5) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -5) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -5) * 4" identifier + (binary_expression "(iVar11 + -5) * 4" (parenthesized_expression "(iVar11 + -5)" ( (binary_expression "iVar11 + -5" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" { (if_statement "if (iVar11 + -6 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -6 == -1)" ( (binary_expression "iVar11 + -6 == -1" (binary_expression "iVar11 + -6" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -6) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -6) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -6) * 4" identifier + (binary_expression "(iVar11 + -6) * 4" (parenthesized_expression "(iVar11 + -6)" ( (binary_expression "iVar11 + -6" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                              trap(7);\n                            }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -6) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -6) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -6) * 4" identifier + (binary_expression "(iVar11 + -6) * 4" (parenthesized_expression "(iVar11 + -6)" ( (binary_expression "iVar11 + -6" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }" { (if_statement "if (iVar11 + -7 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -7 == -1)" ( (binary_expression "iVar11 + -7 == -1" (binary_expression "iVar11 + -7" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -7) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -7) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -7) * 4" identifier + (binary_expression "(iVar11 + -7) * 4" (parenthesized_expression "(iVar11 + -7)" ( (binary_expression "iVar11 + -7" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                trap(7);\n                              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -7) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -7) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -7) * 4" identifier + (binary_expression "(iVar11 + -7) * 4" (parenthesized_expression "(iVar11 + -7)" ( (binary_expression "iVar11 + -7" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }" { (if_statement "if (iVar11 + -8 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -8 == -1)" ( (binary_expression "iVar11 + -8 == -1" (binary_expression "iVar11 + -8" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -8) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -8) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -8) * 4" identifier + (binary_expression "(iVar11 + -8) * 4" (parenthesized_expression "(iVar11 + -8)" ( (binary_expression "iVar11 + -8" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                  trap(7);\n                                }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -8) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -8) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -8) * 4" identifier + (binary_expression "(iVar11 + -8) * 4" (parenthesized_expression "(iVar11 + -8)" ( (binary_expression "iVar11 + -8" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }" { (if_statement "if (iVar11 + -9 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -9 == -1)" ( (binary_expression "iVar11 + -9 == -1" (binary_expression "iVar11 + -9" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -9) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -9) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -9) * 4" identifier + (binary_expression "(iVar11 + -9) * 4" (parenthesized_expression "(iVar11 + -9)" ( (binary_expression "iVar11 + -9" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                    trap(7);\n                                  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -9) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -9) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -9) * 4" identifier + (binary_expression "(iVar11 + -9) * 4" (parenthesized_expression "(iVar11 + -9)" ( (binary_expression "iVar11 + -9" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }" { (if_statement "if (iVar11 + -10 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -10 == -1)" ( (binary_expression "iVar11 + -10 == -1" (binary_expression "iVar11 + -10" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -10) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -10) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -10) * 4" identifier + (binary_expression "(iVar11 + -10) * 4" (parenthesized_expression "(iVar11 + -10)" ( (binary_expression "iVar11 + -10" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                      trap(7);\n                                    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       )" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -10) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -10) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -10) * 4" identifier + (binary_expression "(iVar11 + -10) * 4" (parenthesized_expression "(iVar11 + -10)" ( (binary_expression "iVar11 + -10" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }" { (if_statement "if (iVar11 + -0xb == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -0xb == -1)" ( (binary_expression "iVar11 + -0xb == -1" (binary_expression "iVar11 + -0xb" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -0xb) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xb) * 4" identifier + (binary_expression "(iVar11 + -0xb) * 4" (parenthesized_expression "(iVar11 + -0xb)" ( (binary_expression "iVar11 + -0xb" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                        trap(7);\n                                      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -0xb) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xb) * 4" identifier + (binary_expression "(iVar11 + -0xb) * 4" (parenthesized_expression "(iVar11 + -0xb)" ( (binary_expression "iVar11 + -0xb" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }" { (if_statement "if (iVar11 + -0xc == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -0xc == -1)" ( (binary_expression "iVar11 + -0xc == -1" (binary_expression "iVar11 + -0xc" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -0xc) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xc) * 4" identifier + (binary_expression "(iVar11 + -0xc) * 4" (parenthesized_expression "(iVar11 + -0xc)" ( (binary_expression "iVar11 + -0xc" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                          trap(7);\n                                        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -0xc) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xc) * 4" identifier + (binary_expression "(iVar11 + -0xc) * 4" (parenthesized_expression "(iVar11 + -0xc)" ( (binary_expression "iVar11 + -0xc" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }" { (if_statement "if (iVar11 + -0xd == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -0xd == -1)" ( (binary_expression "iVar11 + -0xd == -1" (binary_expression "iVar11 + -0xd" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -0xd) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -0xd) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xd) * 4" identifier + (binary_expression "(iVar11 + -0xd) * 4" (parenthesized_expression "(iVar11 + -0xd)" ( (binary_expression "iVar11 + -0xd" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                            trap(7);\n                                          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68)" ( (binary_expression "puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68" (binary_expression "puVar10 +\n                                                               (iVar11 + -0xd) * 4" identifier + (binary_expression "(iVar11 + -0xd) * 4" (parenthesized_expression "(iVar11 + -0xd)" ( (binary_expression "iVar11 + -0xd" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }" { (if_statement "if (iVar11 + -0xe == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -0xe == -1)" ( (binary_expression "iVar11 + -0xe == -1" (binary_expression "iVar11 + -0xe" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -0xe) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -0xe) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xe) * 4" identifier + (binary_expression "(iVar11 + -0xe) * 4" (parenthesized_expression "(iVar11 + -0xe)" ( (binary_expression "iVar11 + -0xe" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                              trap(7);\n                                            }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68)" ( (binary_expression "puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68" (binary_expression "puVar10 +\n                                                                 (iVar11 + -0xe) * 4" identifier + (binary_expression "(iVar11 + -0xe) * 4" (parenthesized_expression "(iVar11 + -0xe)" ( (binary_expression "iVar11 + -0xe" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }" { (if_statement "if (iVar11 + -0xf == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -0xf == -1)" ( (binary_expression "iVar11 + -0xf == -1" (binary_expression "iVar11 + -0xf" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -0xf) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -0xf) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xf) * 4" identifier + (binary_expression "(iVar11 + -0xf) * 4" (parenthesized_expression "(iVar11 + -0xf)" ( (binary_expression "iVar11 + -0xf" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                                trap(7);\n                                              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar26 = 1;" (assignment_expression "iVar26 = 1" identifier = number_literal) ;) (if_statement "if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 )" ( (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68)" ( (binary_expression "puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68" (binary_expression "puVar10 +\n                                                                   (iVar11 + -0xf) * 4" identifier + (binary_expression "(iVar11 + -0xf) * 4" (parenthesized_expression "(iVar11 + -0xf)" ( (binary_expression "iVar11 + -0xf" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00032678;" goto statement_identifier ;) })) })) })) })) })) })) })) })) })) })) })) })) })) })) })) (expression_statement "pEVar20 = pEVar32;" (assignment_expression "pEVar20 = pEVar32" identifier = identifier) ;) (expression_statement "iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);" (assignment_expression "iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33)" identifier = (call_expression "(**(code **)(iVar13 + -0x7b80))(puVar33)" (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 "(puVar33)" ( identifier )))) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (iVar26 == 0) goto LAB_00032354;" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00032354;" goto statement_identifier ;)) (expression_statement "(**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);" (call_expression "(**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770)" (parenthesized_expression "(**(code **)(iVar13 + -0x7c20))" ( (pointer_expression "**(code **)(iVar13 + -0x7c20)" * (pointer_expression "*(code **)(iVar13 + -0x7c20)" * (cast_expression "(code **)(iVar13 + -0x7c20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7c20)" ( (binary_expression "iVar13 + -0x7c20" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770)" ( (binary_expression "*(int *)(iVar13 + -0x7fd4) + 0x37cc" (pointer_expression "*(int *)(iVar13 + -0x7fd4)" * (cast_expression "(int *)(iVar13 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + -0x7fd4)" ( (binary_expression "iVar13 + -0x7fd4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(iVar13 + -0x7fd4) + 0x3770" (pointer_expression "*(int *)(iVar13 + -0x7fd4)" * (cast_expression "(int *)(iVar13 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + -0x7fd4)" ( (binary_expression "iVar13 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) })) (labeled_statement "LAB_0003295c:\n                iVar26 = 1;" statement_identifier : (expression_statement "iVar26 = 1;" (assignment_expression "iVar26 = 1" identifier = number_literal) ;)) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;" statement_identifier : (expression_statement "*(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;" (assignment_expression "*(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43" (pointer_expression "*(uint *)(puVar10 + iVar11 * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + iVar11 * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + iVar11 * 4 + -0x68)" ( (binary_expression "puVar10 + iVar11 * 4 + -0x68" (binary_expression "puVar10 + iVar11 * 4" identifier + (binary_expression "iVar11 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;)) (break_statement "break;" break ;) })) (expression_statement "uVar8 = uVar8 + 2;" (assignment_expression "uVar8 = uVar8 + 2" identifier = (binary_expression "uVar8 + 2" identifier + number_literal)) ;) (expression_statement "iVar26 = iVar11;" (assignment_expression "iVar26 = iVar11" identifier = identifier) ;) }) while (parenthesized_expression "(uVar41 != 0)" ( (binary_expression "uVar41 != 0" identifier != number_literal) )) ;) (expression_statement "uVar8 = uVar43 + 2;" (assignment_expression "uVar8 = uVar43 + 2" identifier = (binary_expression "uVar43 + 2" identifier + number_literal)) ;) (expression_statement "iVar16 = (uint)(uVar8 < uVar43) + iVar16;" (assignment_expression "iVar16 = (uint)(uVar8 < uVar43) + iVar16" identifier = (binary_expression "(uint)(uVar8 < uVar43) + iVar16" (call_expression "(uint)(uVar8 < uVar43)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 < uVar43)" ( (binary_expression "uVar8 < uVar43" identifier < identifier) ))) + identifier)) ;) (expression_statement "iVar11 = iVar26;" (assignment_expression "iVar11 = iVar26" identifier = identifier) ;) (expression_statement "uVar43 = uVar8;" (assignment_expression "uVar43 = uVar8" identifier = identifier) ;) }) while (parenthesized_expression "(uVar8 < uVar42)" ( (binary_expression "uVar8 < uVar42" identifier < identifier) )) ;) })) (expression_statement "iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);" (assignment_expression "iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31)" identifier = (call_expression "(**(code **)(iVar13 + -0x7d48))(piVar31)" (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 "(piVar31)" ( identifier )))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar20 = pEVar28;" (assignment_expression "pEVar20 = pEVar28" identifier = identifier) ;) (goto_statement "goto LAB_00032354;" goto statement_identifier ;) })) })) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00032354:\n  iVar16 = *(int *)(puVar10 + -0x2c);" statement_identifier : (expression_statement "iVar16 = *(int *)(puVar10 + -0x2c);" (assignment_expression "iVar16 = *(int *)(puVar10 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar10 + -0x2c)" * (cast_expression "(int *)(puVar10 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x2c)" ( (binary_expression "puVar10 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar16 != *piVar14) {\n    pcVar39 = *(code **)(iVar13 + -0x7b70);\n    uVar25 = 0x32974;\n    (*pcVar39)();\n    pcVar36 = pcVar39 + 0x726c0;\n    pcVar9 = *(char **)(pcVar39 + 0x6a808);\n    *(int **)(puVar10 + -0xa0) = piVar14;\n    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;\n    *(code **)(puVar10 + -0xb0) = pcVar36;\n    *(undefined4 *)(puVar10 + -0x9c) = uVar25;\n    if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }\n    pEVar32 = pEVar20;\n    if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);\n    if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }\n    return iVar11;\n  }" if (parenthesized_expression "(iVar16 != *piVar14)" ( (binary_expression "iVar16 != *piVar14" identifier != (pointer_expression "*piVar14" * identifier)) )) (compound_statement "{\n    pcVar39 = *(code **)(iVar13 + -0x7b70);\n    uVar25 = 0x32974;\n    (*pcVar39)();\n    pcVar36 = pcVar39 + 0x726c0;\n    pcVar9 = *(char **)(pcVar39 + 0x6a808);\n    *(int **)(puVar10 + -0xa0) = piVar14;\n    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;\n    *(code **)(puVar10 + -0xb0) = pcVar36;\n    *(undefined4 *)(puVar10 + -0x9c) = uVar25;\n    if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }\n    pEVar32 = pEVar20;\n    if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);\n    if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }\n    return iVar11;\n  }" { (expression_statement "pcVar39 = *(code **)(iVar13 + -0x7b70);" (assignment_expression "pcVar39 = *(code **)(iVar13 + -0x7b70)" identifier = (pointer_expression "*(code **)(iVar13 + -0x7b70)" * (cast_expression "(code **)(iVar13 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7b70)" ( (binary_expression "iVar13 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = 0x32974;" (assignment_expression "uVar25 = 0x32974" identifier = number_literal) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar36 = pcVar39 + 0x726c0;" (assignment_expression "pcVar36 = pcVar39 + 0x726c0" identifier = (binary_expression "pcVar39 + 0x726c0" identifier + number_literal)) ;) (expression_statement "pcVar9 = *(char **)(pcVar39 + 0x6a808);" (assignment_expression "pcVar9 = *(char **)(pcVar39 + 0x6a808)" identifier = (pointer_expression "*(char **)(pcVar39 + 0x6a808)" * (cast_expression "(char **)(pcVar39 + 0x6a808)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x6a808)" ( (binary_expression "pcVar39 + 0x6a808" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar10 + -0xa0) = piVar14;" (assignment_expression "*(int **)(puVar10 + -0xa0) = piVar14" (pointer_expression "*(int **)(puVar10 + -0xa0)" * (cast_expression "(int **)(puVar10 + -0xa0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xa0)" ( (binary_expression "puVar10 + -0xa0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0xa4)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0xa4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xa4)" ( (binary_expression "puVar10 + -0xa4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar10 + -0xb0) = pcVar36;" (assignment_expression "*(code **)(puVar10 + -0xb0) = pcVar36" (pointer_expression "*(code **)(puVar10 + -0xb0)" * (cast_expression "(code **)(puVar10 + -0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xb0)" ( (binary_expression "puVar10 + -0xb0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x9c) = uVar25;" (assignment_expression "*(undefined4 *)(puVar10 + -0x9c) = uVar25" (pointer_expression "*(undefined4 *)(puVar10 + -0x9c)" * (cast_expression "(undefined4 *)(puVar10 + -0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x9c)" ( (binary_expression "puVar10 + -0x9c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }" if (parenthesized_expression "(*pcVar9 == '\0')" ( (binary_expression "*pcVar9 == '\0'" (pointer_expression "*pcVar9" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }" { (expression_statement "pcVar36 = *(code **)(pcVar39 + 0x6ac84);" (assignment_expression "pcVar36 = *(code **)(pcVar39 + 0x6ac84)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x6ac84)" * (cast_expression "(code **)(pcVar39 + 0x6ac84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x6ac84)" ( (binary_expression "pcVar39 + 0x6ac84" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);" (assignment_expression "uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc)" identifier = (pointer_expression "*(undefined4 *)(pcVar39 + 0x6a8fc)" * (cast_expression "(undefined4 *)(pcVar39 + 0x6a8fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x6a8fc)" ( (binary_expression "pcVar39 + 0x6a8fc" identifier + number_literal) ))))) ;) (expression_statement "*pcVar9 = '\x01';" (assignment_expression "*pcVar9 = '\x01'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(*pcVar36)(uVar25);" (call_expression "(*pcVar36)(uVar25)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(uVar25)" ( identifier ))) ;) (expression_statement "pcVar36 = *(code **)(puVar10 + -0xb0);" (assignment_expression "pcVar36 = *(code **)(puVar10 + -0xb0)" identifier = (pointer_expression "*(code **)(puVar10 + -0xb0)" * (cast_expression "(code **)(puVar10 + -0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xb0)" ( (binary_expression "puVar10 + -0xb0" identifier + number_literal) ))))) ;) })) (expression_statement "pEVar32 = pEVar20;" (assignment_expression "pEVar32 = pEVar20" identifier = identifier) ;) (if_statement "if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }" if (parenthesized_expression "((int)pEVar20 < 0)" ( (binary_expression "(int)pEVar20 < 0" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)-(int)pEVar20" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar20" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar20" - (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);" (assignment_expression "iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5)" identifier = (call_expression "(**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5)" (parenthesized_expression "(**(code **)(pcVar36 + -0x7f7c))" ( (pointer_expression "**(code **)(pcVar36 + -0x7f7c)" * (pointer_expression "*(code **)(pcVar36 + -0x7f7c)" * (cast_expression "(code **)(pcVar36 + -0x7f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + -0x7f7c)" ( (binary_expression "pcVar36 + -0x7f7c" identifier + number_literal) ))))) )) (argument_list "(iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5)" ( identifier , (pointer_expression "*(undefined4 *)(pcVar36 + -0x7dc4)" * (cast_expression "(undefined4 *)(pcVar36 + -0x7dc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + -0x7dc4)" ( (binary_expression "pcVar36 + -0x7dc4" identifier + number_literal) )))) , (binary_expression "(int)pEVar32 << 5" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (if_statement "if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }" if (parenthesized_expression "((int)pEVar20 < 0)" ( (binary_expression "(int)pEVar20 < 0" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }" { (expression_statement "iVar11 = -*(int *)(iVar16 + 4);" (assignment_expression "iVar11 = -*(int *)(iVar16 + 4)" identifier = (unary_expression "-*(int *)(iVar16 + 4)" - (pointer_expression "*(int *)(iVar16 + 4)" * (cast_expression "(int *)(iVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(iVar16 + 4) = iVar11;" (assignment_expression "*(int *)(iVar16 + 4) = iVar11" (pointer_expression "*(int *)(iVar16 + 4)" * (cast_expression "(int *)(iVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))) = identifier) ;) })) (return_statement "return iVar11;" return identifier ;) })) (return_statement "return iVar11;" return 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  mp_ptr pmVar6;\n  int *piVar7;\n  word *pwVar8;\n  word *pwVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  uint uVar12;\n  char *pcVar13;\n  int iVar14;\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  Elf32_Ehdr *pEVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  mp_limb_t mVar26;\n  mp_srcptr pmVar27;\n  int iVar28;\n  Elf32_Ehdr *in_t1;\n  Elf32_Ehdr *pEVar29;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  Elf32_Ehdr *pEVar30;\n  Elf32_Ehdr *pEVar31;\n  Elf32_Ehdr *pEVar32;\n  tmp_reentrant_t *ptVar33;\n  Elf32_Ehdr *pEVar34;\n  tmp_reentrant_t *ptVar35;\n  undefined *puVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  undefined1 *puVar39;\n  undefined1 *puVar40;\n  undefined1 *puVar41;\n  int iVar42;\n  code *pcVar43;\n  undefined4 uVar44;\n  code *pcVar45;\n  uint uVar46;\n  uint uVar47;\n  uint uVar48;\n  undefined8 uVar49;\n  undefined1 auStack_58 [24];\n  tmp_reentrant_t *__tmp_marker;\n  int local_2c;\n  \n  pEVar22 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;\n  puVar39 = auStack_58;\n  pEVar34 = (Elf32_Ehdr *)(an * 4);\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (pEVar34 < (Elf32_Ehdr *)0x7f01) {\n    iVar14 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar39 = auStack_58 + iVar14;\n    pEVar30 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar14);\n  }\n  else {\n    pEVar30 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,pEVar34)\n    ;\n  }\n  uVar18 = ((an - mn) + 1) * 4;\n  if (uVar18 < 0x7f01) {\n    iVar14 = -(uVar18 + 7 & 0xfffffff8);\n    puVar3 = puVar39 + iVar14 + 0x18;\n    puVar39 = puVar39 + iVar14;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n  }\n  if (an != 0) {\n    iVar14 = an + -1;\n    mVar26 = *ap;\n    if (iVar14 == 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      pEVar34 = 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        iVar14 = iVar14 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar14 != 0);\n      pEVar34 = (Elf32_Ehdr *)((int)&pEVar34[-1].e_shnum + (int)pEVar30);\n      pEVar34->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)mVar26;\n    }\n  }\n  *(undefined1 **)(puVar39 + 0x14) = puVar3;\n  *(gmp_pi1_t **)(puVar39 + 0x10) = dinv;\n  pEVar20 = (Elf32_Ehdr *)an;\n  pEVar29 = (Elf32_Ehdr *)mn;\n  mod((mp_ptr)pEVar30,an,mp,mn,*(gmp_pi1_t **)(puVar39 + 0x10),*(mp_ptr *)(puVar39 + 0x14));\n  pEVar32 = (Elf32_Ehdr *)mn;\n  if (mn != 0) {\n    iVar14 = mn + -1;\n    pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num;\n    pmVar6 = tp;\n    pEVar31 = pEVar30;\n    if (iVar14 != 0) {\n      do {\n        *pmVar6 = (mp_limb_t)pEVar20;\n        iVar14 = iVar14 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n        pmVar6 = pmVar6 + 1;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (iVar14 != 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 *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if (local_2c == *(int *)pEVar22) {\n    return;\n  }\n  pcVar43 = __gmpz_powm_ui;\n  puVar36 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  puVar37 = puVar36 + 0x73c70;\n  puVar4 = *(undefined4 **)(puVar36 + 0x6c170);\n  puVar41 = puVar39 + -0xa8;\n  puVar3 = puVar39 + -0xa8;\n  puVar40 = puVar39 + -0xa8;\n  *(undefined1 **)(puVar39 + -8) = auStack_58;\n  *(mp_srcptr *)(puVar39 + -0x20) = ap;\n  *(code **)(puVar39 + -4) = pcVar43;\n  *(undefined4 **)(puVar39 + -0x58) = puVar4;\n  *(gmp_pi1_t **)(puVar39 + -0xc) = dinv;\n  *(Elf32_Ehdr **)(puVar39 + -0x10) = pEVar34;\n  *(mp_size_t *)(puVar39 + -0x14) = an;\n  *(Elf32_Ehdr **)(puVar39 + -0x18) = pEVar22;\n  *(Elf32_Ehdr **)(puVar39 + -0x1c) = pEVar32;\n  *(Elf32_Ehdr **)(puVar39 + -0x24) = pEVar30;\n  *(mp_ptr *)(puVar39 + -0x28) = tp;\n  *(undefined **)(puVar39 + -0x90) = puVar37;\n  *(tmp_reentrant_t **)(puVar39 + -0x54) = ptVar16;\n  *(Elf32_Ehdr **)(puVar39 + -0x5c) = pEVar20;\n  *(Elf32_Ehdr **)(puVar39 + -0x68) = pEVar29;\n  *(undefined4 *)(puVar39 + -0x2c) = *puVar4;\n  pEVar31 = (Elf32_Ehdr *)mp;\n  if (mp < (Elf32_Ehdr *)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n    *(undefined4 *)(puVar39 + -0x4c) = *(undefined4 *)&pEVar29->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar39 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar22 = (Elf32_Ehdr *)mp;\n      uVar49 = (**(code **)(puVar36 + 0x6c210))();\nLAB_00031d4c:\n      uVar18 = (uint)uVar49;\n      pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)((ulonglong)uVar49 >> 0x20));\n      puVar3 = puVar41;\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if ((Elf32_Ehdr *)mp == (Elf32_Ehdr *)0x0) {\n        uVar18 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar39 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x54);\n        ptVar33 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar33->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar39 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar39 + -0x40) = 0;\n      *(word **)(puVar39 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar22 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar39 + -0x4c));\n      if (pEVar22 < &Elf32_Ehdr_00010000) {\n        iVar14 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar22) {\n          iVar14 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar22) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar14 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar22) {\n          iVar14 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar22) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(puVar36 + 0x6bdbc);\n      iVar14 = iVar14 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar22 >> iVar15];\n      *(int *)(puVar39 + -0x6c) = iVar14;\n      puVar41 = puVar39 + -0xa8;\n      if (iVar14 != 0) {\n        if (*(int *)(puVar39 + -0x50) + 4U < 0x7f01) {\n          iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar39 + iVar14 + -0xa8;\n          pEVar30 = (Elf32_Ehdr *)(puVar39 + iVar14 + -0x90);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar39 + -0x4c),pEVar34,*(undefined4 *)(puVar39 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        *(Elf32_Ehdr **)(puVar39 + -0x4c) = pEVar30;\n        pEVar22 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n        pEVar29 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4);\n      }\n      pEVar20 = (Elf32_Ehdr *)((uint)pEVar22 >> 0x10);\n      if (pEVar20 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar47 = ~(uint)pEVar22 / (uint)pEVar20;\n      in_t2 = (uint)pEVar22 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar47);\n      pEVar32 = (Elf32_Ehdr *)(~(uint)pEVar22 % (uint)pEVar20 << 0x10 | 0xffff);\n      uVar18 = uVar47;\n      in_t1 = pEVar29;\n      puVar3 = puVar41;\n      if (pEVar32 < in_t3) {\n        pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);\n        uVar18 = uVar47 - 1;\n        if ((pEVar22 <= pEVar32) && (uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar20 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar48 = (uint)((int)pEVar32 - (int)in_t3) / (uint)pEVar20;\n    pEVar32 = (Elf32_Ehdr *)((uint)((int)pEVar32 - (int)in_t3) % (uint)pEVar20 << 0x10 | 0xffff);\n    uVar47 = uVar48;\n    if ((pEVar32 < (Elf32_Ehdr *)(in_t2 * uVar48)) &&\n       (((Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num) < pEVar22 ||\n        (uVar47 = uVar48 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar48) <=\n        (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num))))) {\n      uVar47 = uVar48 - 1;\n    }\n    uVar47 = uVar18 << 0x10 | uVar47;\n    pEVar32 = (Elf32_Ehdr *)(&in_t1->e_ident_magic_num + uVar47 * (int)pEVar22);\n    lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);\n    if (pEVar32 < in_t1) {\n      uVar18 = pEVar32 < pEVar22 ^ 1;\n      pEVar20 = pEVar22;\n      if (uVar18 == 0) {\n        pEVar20 = (Elf32_Ehdr *)0x0;\n      }\n      uVar47 = (uVar47 - 1) - uVar18;\n      pEVar32 = (Elf32_Ehdr *)((int)pEVar32 + (-(int)pEVar20 - (int)pEVar22));\n      lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);\n    }\n    pEVar29 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar20 = (Elf32_Ehdr *)lVar2;\n    pEVar32 = (Elf32_Ehdr *)(&pEVar29->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);\n    uVar18 = uVar47;\n    if (((pEVar32 < pEVar29) && (uVar18 = uVar47 - 1, pEVar22 <= pEVar32)) &&\n       ((pEVar22 < pEVar32 || (in_t1 <= pEVar20)))) {\n      uVar18 = uVar47 - 2;\n    }\n    *(uint *)(puVar39 + -0x44) = uVar18;\n    pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 4);\n    pEVar32 = pEVar29;\n    if ((int)pEVar29 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar29;\n    }\n    pEVar22 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar29 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar39 + -100) = pEVar22;\n        *(uint *)(puVar39 + -0x70) = *(int *)(puVar39 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar39 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);\n      *(undefined4 *)(*(int *)(puVar39 + -0x54) + 4) = 0;\n      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00031764;\n      pcVar43 = *(code **)(puVar37 + -0x7a28);\nLAB_00031708:\n      (*pcVar43)();\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar18 = *(int *)(puVar39 + -0x50) + 4;\n    pEVar30 = (Elf32_Ehdr *)(uint)(uVar18 < 0x7f01);\n    *(uint *)(puVar39 + -0x70) = uVar18;\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      pcVar43 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar39 + -0x60) = pEVar32;\n      pmVar6 = (mp_ptr)(*pcVar43)(puVar39 + -0x40,uVar18);\n      pEVar32 = *(Elf32_Ehdr **)(puVar39 + -0x60);\n      *(mp_ptr *)(puVar39 + -100) = pmVar6;\n    }\n    else {\n      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n      pmVar6 = (mp_ptr)(puVar3 + iVar14 + 0x18);\n      *(mp_ptr *)(puVar39 + -100) = pmVar6;\n      puVar3 = puVar3 + iVar14;\n    }\n    pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar39 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar22;\n    reduce(pmVar6,(mp_srcptr)pEVar22,(mp_size_t)pEVar32,pmVar27,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14));\n    puVar37 = *(undefined **)(puVar39 + -0x90);\n    pEVar32 = pEVar34;\n    if (*(int *)((int)pmVar6 + *(int *)(puVar39 + -0x50)) == 0) {\n      iVar14 = (int)pmVar6 + *(int *)(puVar39 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar7 = (int *)(iVar14 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar14 = iVar14 + -4;\n      } while (*piVar7 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar14 = -((int)pEVar34 * 8 + 8);\n      pEVar22 = (Elf32_Ehdr *)(puVar3 + iVar14 + 0x18);\n      puVar3 = puVar3 + iVar14;\n    }\n    else {\n      pEVar22 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n    }\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      dinv = (gmp_pi1_t *)\n             (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40,*(undefined4 *)(puVar39 + -0x70));\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n    }\n    else {\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar39 + -0x50) + 8U < 0x7f01) {\n      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar39 + -0x74) = puVar3 + iVar14 + 0x18;\n      puVar3 = puVar3 + iVar14;\n    }\n    else {\n      uVar44 = (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      *(undefined4 *)(puVar39 + -0x74) = uVar44;\n    }\n    puVar4 = *(undefined4 **)(puVar39 + -100);\n    pwVar9 = (word *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar30 = (Elf32_Ehdr *)dinv;\n    pwVar8 = pwVar9;\n    if (pwVar9 != (word *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar8 != (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    iVar14 = 0x1f - (int)tp;\n    an = (mp_size_t)pEVar32;\n    if (iVar14 == 0) {\n      if (pEVar34 == pEVar32) {\n        pcVar13 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar34 * 4 + -1;\n        iVar14 = *(int *)(puVar39 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar14 + -4);\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          if (*(Elf32_Ehdr **)(pcVar13 + -4) != pEVar20) {\n            pcVar43 = *(code **)(puVar37 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20) goto LAB_000318d0;\n            goto LAB_00031d88;\n          }\n          pcVar13 = pcVar13 + -4;\n          iVar14 = iVar14 + -4;\n        } while (pwVar9 != (word *)0xffffffff);\n        pcVar43 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031d88:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar43)(dinv,dinv,*(undefined4 *)(puVar39 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n      }\n    }\n    else {\n      puVar41 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n      *(mp_srcptr *)(puVar39 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar39 + -0x84) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50);\n      *(undefined1 **)(puVar39 + -0x7c) = puVar39 + -0x44;\n      *(int *)(puVar39 + -0x80) = *(int *)(puVar37 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar39 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(puVar37 + -0x7cac))(pEVar22,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        if (an < (int)pEVar34) {\n          pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar22->e_ident_magic_num;\n            uVar24._1_1_ = pEVar22->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar22->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar22->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar9 != (word *)0x0) {\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n          pcVar43 = *(code **)(puVar39 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n          (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          uVar44._0_1_ = pEVar22->e_ident_magic_num;\n          uVar44._1_1_ = pEVar22->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar22->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar22->e_ident_magic_str[2];\n          if (puVar41 == (undefined1 *)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            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }\n          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar34;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar39 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar43)(pEVar22,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          if (an < (int)pEVar34) {\n            pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n            pcVar43 = *(code **)(puVar39 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n            (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n            puVar37 = *(undefined **)(puVar39 + -0x90);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;\n            pwVar9 = (word *)puVar41;\n            pEVar29 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar22;\n            if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n          }\n        }\n        iVar14 = iVar14 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar14 != 0);\n      mp = *(mp_srcptr *)(puVar39 + 8);\n      pEVar32 = (Elf32_Ehdr *)puVar41;\n    }\nLAB_000318d0:\n    pEVar30 = (Elf32_Ehdr *)0x0;\n    pEVar29 = *(Elf32_Ehdr **)(puVar39 + -0x6c);\n    if (pEVar29 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar13 = ((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            pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n            piVar7 = *(int **)(puVar39 + -0x54);\n            if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar7 = (int *)(pcVar13 + -8);\n          pcVar13 = pcVar13 + -4;\n        } while (*piVar7 == 0);\n      }\n      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n      piVar7 = *(int **)(puVar39 + -0x54);\n      if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n         (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar43 = *(code **)(puVar37 + -0x7a80);\n        if (*piVar7 < an) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        tp = *(mp_ptr *)(*(int *)(puVar39 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar14 = (**(code **)(puVar37 + -0x7b2c))(dinv,tp,dinv,an);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        pEVar30 = (Elf32_Ehdr *)an;\n        if (iVar14 == 0) {\nLAB_00031fd0:\n          an = (mp_size_t)pEVar30;\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30)) goto LAB_00031c50;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70));\n          pbVar11 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar11;\n            pbVar11 = pbVar11 + 4;\n            *(undefined4 *)pbVar10 = uVar44;\n            pbVar10 = pbVar10 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar11);\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str;\n          if (an < (int)pEVar34) {\n            pEVar20 = (Elf32_Ehdr *)(an * 4);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            iVar14 = *(int *)pbVar10;\n            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;\n            if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14);\n        iVar14._0_1_ = pEVar30->e_ident_magic_num;\n        iVar14._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar14._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar14._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar14 == 0) {\n          iVar14 = *(int *)(puVar39 + -0x78);\n          pbVar10 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x70);\n          do {\n            iVar14 = iVar14 + -1;\n            if (iVar14 == 0) {\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar7 = (int *)(pbVar10 + -8);\n            pbVar10 = pbVar10 + -4;\n          } while (*piVar7 == 0);\n          *(int *)(puVar39 + -0x78) = iVar14;\n        }\n        an = *(mp_size_t *)(puVar39 + -0x78);\n        if (**(int **)(puVar39 + -0x54) < an) {\n          an = *(mp_size_t *)(puVar39 + -0x78);\n          pcVar43 = *(code **)(puVar37 + -0x7a80);\nLAB_00031fa0:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar43)(*(undefined4 *)(puVar39 + -0x54));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          goto LAB_00031944;\n        }\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n      }\n      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;\n      puVar23 = *(undefined4 **)(*(int *)(puVar39 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar29 = (Elf32_Ehdr *)dinv;\n      if (pwVar9 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n        } while (pwVar9 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar22,dinv,an,pEVar29);\n      iVar42 = *(int *)(puVar39 + -0x90);\n      iVar14 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar22->e_ident_magic_str + iVar14 + -1) = iVar15;\n      tp = (mp_ptr)pEVar29;\n      if ((int)pEVar34 <= an) {\n        pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar39 + -0x44;\n        mod((mp_ptr)pEVar22,an,pmVar27,(mp_size_t)pEVar34,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar9 = (word *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar42 = *(int *)(puVar39 + -0x90);\n        uVar17._0_1_ = pEVar22->e_ident_magic_num;\n        uVar17._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 == (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)pEVar34;\n        }\n        else {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar17;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar34;\n        }\nLAB_00031de0:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar39 + -0x6c));\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        goto LAB_000318dc;\n      }\n      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar22->e_ident_magic_num;\n        uVar21._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 != (word *)0x0) {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar21;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          pEVar29 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar29->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_00031de0;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,0,pEVar29);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      pEVar31 = (Elf32_Ehdr *)mp;\nLAB_00031a04:\n      piVar7 = *(int **)(puVar39 + -0x54);\nLAB_00031a08:\n      if (*piVar7 < 0) {\n        tp = *(mp_ptr *)(puVar39 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a80))(tp);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\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 *)(puVar39 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);\n    piVar7 = *(int **)(puVar39 + -0x58);\n    if (ptVar16 != (tmp_reentrant_t *)0x0) {\n      pcVar43 = *(code **)(puVar37 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }\n  else {\n    pcVar43 = *(code **)(puVar36 + 0x6c110);\n    *(mp_srcptr *)(puVar39 + -0x3c) = mp;\n    *(undefined4 *)(puVar39 + -0x34) = 1;\n    *(undefined1 **)(puVar39 + -0x30) = puVar39 + -0x3c;\n    (*pcVar43)();\n    puVar37 = *(undefined **)(puVar39 + -0x90);\nLAB_00031764:\n    piVar7 = *(int **)(puVar39 + -0x58);\n  }\n  if (*(int *)(puVar39 + -0x2c) == *piVar7) {\n    return;\n  }\n  pcVar43 = *(code **)(puVar37 + -0x7b70);\n  uVar44 = 0x3206c;\n  (*pcVar43)();\n  pcVar38 = pcVar43 + 0x72fd0;\n  puVar41 = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar31;\n  piVar7 = *(int **)(pcVar43 + 0x6b4d0);\n  *(undefined1 **)(puVar3 + -8) = puVar39 + -0xa8;\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) = *piVar7;\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 **)(pcVar43 + 0x6b550))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;\n    }\n    iVar14 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar18 = 8;\n    do {\n      uVar47 = uVar18;\n      pEVar30 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar18 = uVar47 - 1;\n    } while (pEVar30 < pEVar20);\n    if (uVar47 == 0) {\n      trap(7);\n    }\n    uVar18 = ((iVar14 + 1U) / uVar47 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar18 < 0x7f01) {\n      iVar14 = -(uVar18 + 7 & 0xfffffff8);\n      puVar41 = puVar3 + iVar14 + -0x38;\n      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar14 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar47 = 1;\n    iVar14 = 0;\n    uVar18 = 0;\n    ptVar33 = (tmp_reentrant_t *)0x6;\n    do {\n      uVar48 = uVar18 + 1;\n      iVar42 = iVar14;\n      ptVar35 = ptVar33;\n      if ((uVar47 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar35 = (tmp_reentrant_t *)((uVar48 & 1) + 1 + uVar48 * 3);\n        if ((int)(ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar35 = (tmp_reentrant_t *)((int)ptVar33 * (int)ptVar35);\n        }\n        else {\n          iVar42 = iVar14 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1) = ptVar33;\n        }\n      }\n      uVar47 = uVar47 * 2 - ((int)uVar47 >> 0x1f);\n      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar47 & 1);\n      iVar14 = iVar42;\n      uVar18 = uVar48;\n      ptVar33 = ptVar35;\n    } while (bVar1);\n    if (iVar42 == 0) {\n      (ptVar16[1].next)->next = ptVar35;\n      ptVar16->size = 1;\n    }\n    else {\n      pcVar43 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar42 * 4 + -1) = ptVar35;\n      (*pcVar43)(ptVar16,pEVar30,iVar42 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    ptVar33 = *(tmp_reentrant_t **)(puVar3 + -0x20);\n    if (ptVar33 != (tmp_reentrant_t *)0x0) {\n      (**(code **)(pcVar38 + -0x7a28))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar29 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar43 + 0x6affc) + 0x3750);\n    (ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar29->e_ident_magic_num;\n    ptVar16->size = 1;\n    ptVar33 = ptVar16;\n    pEVar30 = pEVar20;\n    pEVar20 = pEVar29;\n    puVar41 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar7) {\n    return;\n  }\n  pcVar43 = *(code **)(pcVar38 + -0x7b70);\n  pcVar45 = __gmpz_probab_prime_p;\n  (*pcVar43)();\n  pcVar38 = *(code **)(pcVar43 + 0x6ae78);\n  *(tmp_reentrant_t **)(puVar41 + -0x24) = ptVar16;\n  *(int **)(puVar41 + -0x20) = piVar7;\n  piVar7 = *(int **)(pcVar43 + 0x6b270);\n  *(Elf32_Ehdr **)(puVar41 + -0x18) = pEVar22;\n  *(Elf32_Ehdr **)(puVar41 + -0x1c) = pEVar32;\n  pEVar22 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar41 + -0x88) = pcVar43 + 0x72d70;\n  *(Elf32_Ehdr **)(puVar41 + -0x10) = pEVar34;\n  *(mp_size_t *)(puVar41 + -0x14) = an;\n  *(Elf32_Ehdr **)(puVar41 + -0x28) = pEVar20;\n  *(code **)(puVar41 + -4) = pcVar45;\n  *(undefined1 **)(puVar41 + -8) = puVar3 + -0x38;\n  *(gmp_pi1_t **)(puVar41 + -0xc) = dinv;\n  *(int *)(puVar41 + -0x2c) = *piVar7;\n  iVar14 = (*pcVar38)();\n  ptVar35 = ptVar33[1].next;\n  iVar15 = *(int *)(puVar41 + -0x88);\n  pEVar34 = (Elf32_Ehdr *)ptVar33->size;\n  ptVar16 = ptVar35->next;\n  if (iVar14 < 1) {\n    pEVar22 = (Elf32_Ehdr *)0xf4240;\n    iVar14 = (**(code **)(iVar15 + -0x7ab4))(ptVar33);\n    iVar15 = *(int *)(puVar41 + -0x88);\n    if (iVar14 < 1) {\n      if ((pEVar34 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar47 = 3;\n        while (uVar18 != 0) {\n          if (uVar47 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar47;\n          if ((uint)ptVar16 / uVar47 < uVar47) break;\n          uVar47 = uVar47 + 2;\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar35;\n    ptVar33 = (tmp_reentrant_t *)(puVar41 + -0x74);\n    *(Elf32_Ehdr **)(puVar41 + -0x70) = pEVar34;\n  }\n  if ((pEVar34 != (Elf32_Ehdr *)0x0) && (uVar18 = (uint)ptVar16 & 1, uVar18 != 0)) {\n    pEVar22 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar47 = (**(code **)(iVar15 + -0x7c24))(ptVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar41 + -0x88);\n    }\n    else {\n      uVar47 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x88);\n    }\n    if ((((((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)) &&\n          (uVar47 != (uVar47 / 7) * 7)) &&\n         ((uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd)))) &&\n        ((uVar47 != (uVar47 / 0x11) * 0x11 &&\n         ((uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17)))))) &&\n       (uVar47 != (uVar47 / 0x1d) * 0x1d)) {\n      uVar47 = (**(code **)(iVar15 + -0x7f14))(ptVar33,2);\n      iVar15 = *(int *)(puVar41 + -0x88);\n      if (0x1f < uVar47) {\n        iVar42 = 0;\n        iVar14 = 0;\n        uVar48 = 0x1f;\n        do {\n          uVar12 = 3;\n          do {\n            if (uVar12 == 0) {\n              trap(7);\n            }\n            uVar46 = uVar48 % uVar12;\n            if (uVar48 / uVar12 < uVar12) {\n              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;\n              break;\n            }\n            uVar12 = uVar12 + 2;\n            iVar28 = iVar14;\n          } while (uVar46 != 0);\n          uVar12 = uVar48 + 2;\n          iVar42 = (uint)(uVar12 < uVar48) + iVar42;\n          iVar14 = iVar28;\n          uVar48 = uVar12;\n        } while (uVar12 < uVar47);\n      }\n      (**(code **)(iVar15 + -0x7d48))(ptVar33);\n      iVar15 = *(int *)(puVar41 + -0x88);\n      pEVar22 = pEVar30;\n    }\n  }\nLAB_00032354:\n  iVar14 = *(int *)(puVar41 + -0x2c);\n  if (iVar14 == *piVar7) {\n    return;\n  }\n  pcVar43 = *(code **)(iVar15 + -0x7b70);\n  uVar44 = 0x32974;\n  (*pcVar43)();\n  pcVar38 = pcVar43 + 0x726c0;\n  pcVar13 = *(char **)(pcVar43 + 0x6a808);\n  *(int **)(puVar41 + -0xa0) = piVar7;\n  *(Elf32_Ehdr **)(puVar41 + -0xa4) = pEVar34;\n  *(code **)(puVar41 + -0xb0) = pcVar38;\n  *(undefined4 *)(puVar41 + -0x9c) = uVar44;\n  if (*pcVar13 == '\0') {\n    pcVar38 = *(code **)(pcVar43 + 0x6ac84);\n    uVar44 = *(undefined4 *)(pcVar43 + 0x6a8fc);\n    *pcVar13 = '\x01';\n    (*pcVar38)(uVar44);\n    pcVar38 = *(code **)(puVar41 + -0xb0);\n  }\n  pEVar34 = pEVar22;\n  if ((int)pEVar22 < 0) {\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar22;\n  }\n  (**(code **)(pcVar38 + -0x7f7c))(iVar14,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);\n  if ((int)pEVar22 < 0) {\n    *(int *)(iVar14 + 4) = -*(int *)(iVar14 + 4);\n  }\n  return;\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  mp_ptr pmVar6;\n  int *piVar7;\n  word *pwVar8;\n  word *pwVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  uint uVar12;\n  char *pcVar13;\n  int iVar14;\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  Elf32_Ehdr *pEVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  mp_limb_t mVar26;\n  mp_srcptr pmVar27;\n  int iVar28;\n  Elf32_Ehdr *in_t1;\n  Elf32_Ehdr *pEVar29;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  Elf32_Ehdr *pEVar30;\n  Elf32_Ehdr *pEVar31;\n  Elf32_Ehdr *pEVar32;\n  tmp_reentrant_t *ptVar33;\n  Elf32_Ehdr *pEVar34;\n  tmp_reentrant_t *ptVar35;\n  undefined *puVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  undefined1 *puVar39;\n  undefined1 *puVar40;\n  undefined1 *puVar41;\n  int iVar42;\n  code *pcVar43;\n  undefined4 uVar44;\n  code *pcVar45;\n  uint uVar46;\n  uint uVar47;\n  uint uVar48;\n  undefined8 uVar49;\n  undefined1 auStack_58 [24];\n  tmp_reentrant_t *__tmp_marker;\n  int local_2c;\n  \n  pEVar22 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;\n  puVar39 = auStack_58;\n  pEVar34 = (Elf32_Ehdr *)(an * 4);\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (pEVar34 < (Elf32_Ehdr *)0x7f01) {\n    iVar14 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar39 = auStack_58 + iVar14;\n    pEVar30 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar14);\n  }\n  else {\n    pEVar30 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,pEVar34)\n    ;\n  }\n  uVar18 = ((an - mn) + 1) * 4;\n  if (uVar18 < 0x7f01) {\n    iVar14 = -(uVar18 + 7 & 0xfffffff8);\n    puVar3 = puVar39 + iVar14 + 0x18;\n    puVar39 = puVar39 + iVar14;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n  }\n  if (an != 0) {\n    iVar14 = an + -1;\n    mVar26 = *ap;\n    if (iVar14 == 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      pEVar34 = 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        iVar14 = iVar14 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar14 != 0);\n      pEVar34 = (Elf32_Ehdr *)((int)&pEVar34[-1].e_shnum + (int)pEVar30);\n      pEVar34->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)mVar26;\n    }\n  }\n  *(undefined1 **)(puVar39 + 0x14) = puVar3;\n  *(gmp_pi1_t **)(puVar39 + 0x10) = dinv;\n  pEVar20 = (Elf32_Ehdr *)an;\n  pEVar29 = (Elf32_Ehdr *)mn;\n  mod((mp_ptr)pEVar30,an,mp,mn,*(gmp_pi1_t **)(puVar39 + 0x10),*(mp_ptr *)(puVar39 + 0x14));\n  pEVar32 = (Elf32_Ehdr *)mn;\n  if (mn != 0) {\n    iVar14 = mn + -1;\n    pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num;\n    pmVar6 = tp;\n    pEVar31 = pEVar30;\n    if (iVar14 != 0) {\n      do {\n        *pmVar6 = (mp_limb_t)pEVar20;\n        iVar14 = iVar14 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n        pmVar6 = pmVar6 + 1;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (iVar14 != 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 *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if (local_2c == *(int *)pEVar22) {\n    return;\n  }\n  pcVar43 = __gmpz_powm_ui;\n  puVar36 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  puVar37 = puVar36 + 0x73c70;\n  puVar4 = *(undefined4 **)(puVar36 + 0x6c170);\n  puVar41 = puVar39 + -0xa8;\n  puVar3 = puVar39 + -0xa8;\n  puVar40 = puVar39 + -0xa8;\n  *(undefined1 **)(puVar39 + -8) = auStack_58;\n  *(mp_srcptr *)(puVar39 + -0x20) = ap;\n  *(code **)(puVar39 + -4) = pcVar43;\n  *(undefined4 **)(puVar39 + -0x58) = puVar4;\n  *(gmp_pi1_t **)(puVar39 + -0xc) = dinv;\n  *(Elf32_Ehdr **)(puVar39 + -0x10) = pEVar34;\n  *(mp_size_t *)(puVar39 + -0x14) = an;\n  *(Elf32_Ehdr **)(puVar39 + -0x18) = pEVar22;\n  *(Elf32_Ehdr **)(puVar39 + -0x1c) = pEVar32;\n  *(Elf32_Ehdr **)(puVar39 + -0x24) = pEVar30;\n  *(mp_ptr *)(puVar39 + -0x28) = tp;\n  *(undefined **)(puVar39 + -0x90) = puVar37;\n  *(tmp_reentrant_t **)(puVar39 + -0x54) = ptVar16;\n  *(Elf32_Ehdr **)(puVar39 + -0x5c) = pEVar20;\n  *(Elf32_Ehdr **)(puVar39 + -0x68) = pEVar29;\n  *(undefined4 *)(puVar39 + -0x2c) = *puVar4;\n  pEVar31 = (Elf32_Ehdr *)mp;\n  if (mp < (Elf32_Ehdr *)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n    *(undefined4 *)(puVar39 + -0x4c) = *(undefined4 *)&pEVar29->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar39 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar22 = (Elf32_Ehdr *)mp;\n      uVar49 = (**(code **)(puVar36 + 0x6c210))();\nLAB_00031d4c:\n      uVar18 = (uint)uVar49;\n      pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)((ulonglong)uVar49 >> 0x20));\n      puVar3 = puVar41;\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if ((Elf32_Ehdr *)mp == (Elf32_Ehdr *)0x0) {\n        uVar18 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar39 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x54);\n        ptVar33 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar33->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar39 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar39 + -0x40) = 0;\n      *(word **)(puVar39 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar22 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar39 + -0x4c));\n      if (pEVar22 < &Elf32_Ehdr_00010000) {\n        iVar14 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar22) {\n          iVar14 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar22) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar14 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar22) {\n          iVar14 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar22) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(puVar36 + 0x6bdbc);\n      iVar14 = iVar14 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar22 >> iVar15];\n      *(int *)(puVar39 + -0x6c) = iVar14;\n      puVar41 = puVar39 + -0xa8;\n      if (iVar14 != 0) {\n        if (*(int *)(puVar39 + -0x50) + 4U < 0x7f01) {\n          iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar39 + iVar14 + -0xa8;\n          pEVar30 = (Elf32_Ehdr *)(puVar39 + iVar14 + -0x90);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar39 + -0x4c),pEVar34,*(undefined4 *)(puVar39 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        *(Elf32_Ehdr **)(puVar39 + -0x4c) = pEVar30;\n        pEVar22 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n        pEVar29 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4);\n      }\n      pEVar20 = (Elf32_Ehdr *)((uint)pEVar22 >> 0x10);\n      if (pEVar20 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar47 = ~(uint)pEVar22 / (uint)pEVar20;\n      in_t2 = (uint)pEVar22 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar47);\n      pEVar32 = (Elf32_Ehdr *)(~(uint)pEVar22 % (uint)pEVar20 << 0x10 | 0xffff);\n      uVar18 = uVar47;\n      in_t1 = pEVar29;\n      puVar3 = puVar41;\n      if (pEVar32 < in_t3) {\n        pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);\n        uVar18 = uVar47 - 1;\n        if ((pEVar22 <= pEVar32) && (uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar20 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar48 = (uint)((int)pEVar32 - (int)in_t3) / (uint)pEVar20;\n    pEVar32 = (Elf32_Ehdr *)((uint)((int)pEVar32 - (int)in_t3) % (uint)pEVar20 << 0x10 | 0xffff);\n    uVar47 = uVar48;\n    if ((pEVar32 < (Elf32_Ehdr *)(in_t2 * uVar48)) &&\n       (((Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num) < pEVar22 ||\n        (uVar47 = uVar48 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar48) <=\n        (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num))))) {\n      uVar47 = uVar48 - 1;\n    }\n    uVar47 = uVar18 << 0x10 | uVar47;\n    pEVar32 = (Elf32_Ehdr *)(&in_t1->e_ident_magic_num + uVar47 * (int)pEVar22);\n    lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);\n    if (pEVar32 < in_t1) {\n      uVar18 = pEVar32 < pEVar22 ^ 1;\n      pEVar20 = pEVar22;\n      if (uVar18 == 0) {\n        pEVar20 = (Elf32_Ehdr *)0x0;\n      }\n      uVar47 = (uVar47 - 1) - uVar18;\n      pEVar32 = (Elf32_Ehdr *)((int)pEVar32 + (-(int)pEVar20 - (int)pEVar22));\n      lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);\n    }\n    pEVar29 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar20 = (Elf32_Ehdr *)lVar2;\n    pEVar32 = (Elf32_Ehdr *)(&pEVar29->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);\n    uVar18 = uVar47;\n    if (((pEVar32 < pEVar29) && (uVar18 = uVar47 - 1, pEVar22 <= pEVar32)) &&\n       ((pEVar22 < pEVar32 || (in_t1 <= pEVar20)))) {\n      uVar18 = uVar47 - 2;\n    }\n    *(uint *)(puVar39 + -0x44) = uVar18;\n    pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 4);\n    pEVar32 = pEVar29;\n    if ((int)pEVar29 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar29;\n    }\n    pEVar22 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar29 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar39 + -100) = pEVar22;\n        *(uint *)(puVar39 + -0x70) = *(int *)(puVar39 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar39 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);\n      *(undefined4 *)(*(int *)(puVar39 + -0x54) + 4) = 0;\n      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00031764;\n      pcVar43 = *(code **)(puVar37 + -0x7a28);\nLAB_00031708:\n      (*pcVar43)();\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar18 = *(int *)(puVar39 + -0x50) + 4;\n    pEVar30 = (Elf32_Ehdr *)(uint)(uVar18 < 0x7f01);\n    *(uint *)(puVar39 + -0x70) = uVar18;\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      pcVar43 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar39 + -0x60) = pEVar32;\n      pmVar6 = (mp_ptr)(*pcVar43)(puVar39 + -0x40,uVar18);\n      pEVar32 = *(Elf32_Ehdr **)(puVar39 + -0x60);\n      *(mp_ptr *)(puVar39 + -100) = pmVar6;\n    }\n    else {\n      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n      pmVar6 = (mp_ptr)(puVar3 + iVar14 + 0x18);\n      *(mp_ptr *)(puVar39 + -100) = pmVar6;\n      puVar3 = puVar3 + iVar14;\n    }\n    pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar39 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar22;\n    reduce(pmVar6,(mp_srcptr)pEVar22,(mp_size_t)pEVar32,pmVar27,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14));\n    puVar37 = *(undefined **)(puVar39 + -0x90);\n    pEVar32 = pEVar34;\n    if (*(int *)((int)pmVar6 + *(int *)(puVar39 + -0x50)) == 0) {\n      iVar14 = (int)pmVar6 + *(int *)(puVar39 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar7 = (int *)(iVar14 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar14 = iVar14 + -4;\n      } while (*piVar7 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar14 = -((int)pEVar34 * 8 + 8);\n      pEVar22 = (Elf32_Ehdr *)(puVar3 + iVar14 + 0x18);\n      puVar3 = puVar3 + iVar14;\n    }\n    else {\n      pEVar22 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n    }\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      dinv = (gmp_pi1_t *)\n             (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40,*(undefined4 *)(puVar39 + -0x70));\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n    }\n    else {\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar39 + -0x50) + 8U < 0x7f01) {\n      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar39 + -0x74) = puVar3 + iVar14 + 0x18;\n      puVar3 = puVar3 + iVar14;\n    }\n    else {\n      uVar44 = (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      *(undefined4 *)(puVar39 + -0x74) = uVar44;\n    }\n    puVar4 = *(undefined4 **)(puVar39 + -100);\n    pwVar9 = (word *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar30 = (Elf32_Ehdr *)dinv;\n    pwVar8 = pwVar9;\n    if (pwVar9 != (word *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar8 != (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    iVar14 = 0x1f - (int)tp;\n    an = (mp_size_t)pEVar32;\n    if (iVar14 == 0) {\n      if (pEVar34 == pEVar32) {\n        pcVar13 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar34 * 4 + -1;\n        iVar14 = *(int *)(puVar39 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar14 + -4);\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          if (*(Elf32_Ehdr **)(pcVar13 + -4) != pEVar20) {\n            pcVar43 = *(code **)(puVar37 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20) goto LAB_000318d0;\n            goto LAB_00031d88;\n          }\n          pcVar13 = pcVar13 + -4;\n          iVar14 = iVar14 + -4;\n        } while (pwVar9 != (word *)0xffffffff);\n        pcVar43 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031d88:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar43)(dinv,dinv,*(undefined4 *)(puVar39 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n      }\n    }\n    else {\n      puVar41 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n      *(mp_srcptr *)(puVar39 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar39 + -0x84) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50);\n      *(undefined1 **)(puVar39 + -0x7c) = puVar39 + -0x44;\n      *(int *)(puVar39 + -0x80) = *(int *)(puVar37 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar39 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(puVar37 + -0x7cac))(pEVar22,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        if (an < (int)pEVar34) {\n          pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar22->e_ident_magic_num;\n            uVar24._1_1_ = pEVar22->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar22->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar22->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar9 != (word *)0x0) {\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n          pcVar43 = *(code **)(puVar39 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n          (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          uVar44._0_1_ = pEVar22->e_ident_magic_num;\n          uVar44._1_1_ = pEVar22->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar22->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar22->e_ident_magic_str[2];\n          if (puVar41 == (undefined1 *)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            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }\n          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar34;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar39 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar43)(pEVar22,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          if (an < (int)pEVar34) {\n            pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n            pcVar43 = *(code **)(puVar39 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n            (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n            puVar37 = *(undefined **)(puVar39 + -0x90);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;\n            pwVar9 = (word *)puVar41;\n            pEVar29 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar22;\n            if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n          }\n        }\n        iVar14 = iVar14 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar14 != 0);\n      mp = *(mp_srcptr *)(puVar39 + 8);\n      pEVar32 = (Elf32_Ehdr *)puVar41;\n    }\nLAB_000318d0:\n    pEVar30 = (Elf32_Ehdr *)0x0;\n    pEVar29 = *(Elf32_Ehdr **)(puVar39 + -0x6c);\n    if (pEVar29 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar13 = ((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            pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n            piVar7 = *(int **)(puVar39 + -0x54);\n            if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar7 = (int *)(pcVar13 + -8);\n          pcVar13 = pcVar13 + -4;\n        } while (*piVar7 == 0);\n      }\n      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n      piVar7 = *(int **)(puVar39 + -0x54);\n      if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n         (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar43 = *(code **)(puVar37 + -0x7a80);\n        if (*piVar7 < an) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        tp = *(mp_ptr *)(*(int *)(puVar39 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar14 = (**(code **)(puVar37 + -0x7b2c))(dinv,tp,dinv,an);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        pEVar30 = (Elf32_Ehdr *)an;\n        if (iVar14 == 0) {\nLAB_00031fd0:\n          an = (mp_size_t)pEVar30;\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30)) goto LAB_00031c50;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70));\n          pbVar11 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar11;\n            pbVar11 = pbVar11 + 4;\n            *(undefined4 *)pbVar10 = uVar44;\n            pbVar10 = pbVar10 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar11);\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str;\n          if (an < (int)pEVar34) {\n            pEVar20 = (Elf32_Ehdr *)(an * 4);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            iVar14 = *(int *)pbVar10;\n            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;\n            if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14);\n        iVar14._0_1_ = pEVar30->e_ident_magic_num;\n        iVar14._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar14._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar14._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar14 == 0) {\n          iVar14 = *(int *)(puVar39 + -0x78);\n          pbVar10 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x70);\n          do {\n            iVar14 = iVar14 + -1;\n            if (iVar14 == 0) {\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar7 = (int *)(pbVar10 + -8);\n            pbVar10 = pbVar10 + -4;\n          } while (*piVar7 == 0);\n          *(int *)(puVar39 + -0x78) = iVar14;\n        }\n        an = *(mp_size_t *)(puVar39 + -0x78);\n        if (**(int **)(puVar39 + -0x54) < an) {\n          an = *(mp_size_t *)(puVar39 + -0x78);\n          pcVar43 = *(code **)(puVar37 + -0x7a80);\nLAB_00031fa0:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar43)(*(undefined4 *)(puVar39 + -0x54));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          goto LAB_00031944;\n        }\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n      }\n      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;\n      puVar23 = *(undefined4 **)(*(int *)(puVar39 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar29 = (Elf32_Ehdr *)dinv;\n      if (pwVar9 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n        } while (pwVar9 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar22,dinv,an,pEVar29);\n      iVar42 = *(int *)(puVar39 + -0x90);\n      iVar14 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar22->e_ident_magic_str + iVar14 + -1) = iVar15;\n      tp = (mp_ptr)pEVar29;\n      if ((int)pEVar34 <= an) {\n        pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar39 + -0x44;\n        mod((mp_ptr)pEVar22,an,pmVar27,(mp_size_t)pEVar34,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar9 = (word *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar42 = *(int *)(puVar39 + -0x90);\n        uVar17._0_1_ = pEVar22->e_ident_magic_num;\n        uVar17._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 == (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)pEVar34;\n        }\n        else {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar17;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar34;\n        }\nLAB_00031de0:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar39 + -0x6c));\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        goto LAB_000318dc;\n      }\n      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar22->e_ident_magic_num;\n        uVar21._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 != (word *)0x0) {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar21;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          pEVar29 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar29->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_00031de0;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,0,pEVar29);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      pEVar31 = (Elf32_Ehdr *)mp;\nLAB_00031a04:\n      piVar7 = *(int **)(puVar39 + -0x54);\nLAB_00031a08:\n      if (*piVar7 < 0) {\n        tp = *(mp_ptr *)(puVar39 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a80))(tp);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\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 *)(puVar39 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);\n    piVar7 = *(int **)(puVar39 + -0x58);\n    if (ptVar16 != (tmp_reentrant_t *)0x0) {\n      pcVar43 = *(code **)(puVar37 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }\n  else {\n    pcVar43 = *(code **)(puVar36 + 0x6c110);\n    *(mp_srcptr *)(puVar39 + -0x3c) = mp;\n    *(undefined4 *)(puVar39 + -0x34) = 1;\n    *(undefined1 **)(puVar39 + -0x30) = puVar39 + -0x3c;\n    (*pcVar43)();\n    puVar37 = *(undefined **)(puVar39 + -0x90);\nLAB_00031764:\n    piVar7 = *(int **)(puVar39 + -0x58);\n  }\n  if (*(int *)(puVar39 + -0x2c) == *piVar7) {\n    return;\n  }\n  pcVar43 = *(code **)(puVar37 + -0x7b70);\n  uVar44 = 0x3206c;\n  (*pcVar43)();\n  pcVar38 = pcVar43 + 0x72fd0;\n  puVar41 = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar31;\n  piVar7 = *(int **)(pcVar43 + 0x6b4d0);\n  *(undefined1 **)(puVar3 + -8) = puVar39 + -0xa8;\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) = *piVar7;\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 **)(pcVar43 + 0x6b550))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;\n    }\n    iVar14 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar18 = 8;\n    do {\n      uVar47 = uVar18;\n      pEVar30 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar18 = uVar47 - 1;\n    } while (pEVar30 < pEVar20);\n    if (uVar47 == 0) {\n      trap(7);\n    }\n    uVar18 = ((iVar14 + 1U) / uVar47 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar18 < 0x7f01) {\n      iVar14 = -(uVar18 + 7 & 0xfffffff8);\n      puVar41 = puVar3 + iVar14 + -0x38;\n      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar14 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar47 = 1;\n    iVar14 = 0;\n    uVar18 = 0;\n    ptVar33 = (tmp_reentrant_t *)0x6;\n    do {\n      uVar48 = uVar18 + 1;\n      iVar42 = iVar14;\n      ptVar35 = ptVar33;\n      if ((uVar47 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar35 = (tmp_reentrant_t *)((uVar48 & 1) + 1 + uVar48 * 3);\n        if ((int)(ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar35 = (tmp_reentrant_t *)((int)ptVar33 * (int)ptVar35);\n        }\n        else {\n          iVar42 = iVar14 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1) = ptVar33;\n        }\n      }\n      uVar47 = uVar47 * 2 - ((int)uVar47 >> 0x1f);\n      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar47 & 1);\n      iVar14 = iVar42;\n      uVar18 = uVar48;\n      ptVar33 = ptVar35;\n    } while (bVar1);\n    if (iVar42 == 0) {\n      (ptVar16[1].next)->next = ptVar35;\n      ptVar16->size = 1;\n    }\n    else {\n      pcVar43 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar42 * 4 + -1) = ptVar35;\n      (*pcVar43)(ptVar16,pEVar30,iVar42 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    ptVar33 = *(tmp_reentrant_t **)(puVar3 + -0x20);\n    if (ptVar33 != (tmp_reentrant_t *)0x0) {\n      (**(code **)(pcVar38 + -0x7a28))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar29 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar43 + 0x6affc) + 0x3750);\n    (ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar29->e_ident_magic_num;\n    ptVar16->size = 1;\n    ptVar33 = ptVar16;\n    pEVar30 = pEVar20;\n    pEVar20 = pEVar29;\n    puVar41 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar7) {\n    return;\n  }\n  pcVar43 = *(code **)(pcVar38 + -0x7b70);\n  pcVar45 = __gmpz_probab_prime_p;\n  (*pcVar43)();\n  pcVar38 = *(code **)(pcVar43 + 0x6ae78);\n  *(tmp_reentrant_t **)(puVar41 + -0x24) = ptVar16;\n  *(int **)(puVar41 + -0x20) = piVar7;\n  piVar7 = *(int **)(pcVar43 + 0x6b270);\n  *(Elf32_Ehdr **)(puVar41 + -0x18) = pEVar22;\n  *(Elf32_Ehdr **)(puVar41 + -0x1c) = pEVar32;\n  pEVar22 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar41 + -0x88) = pcVar43 + 0x72d70;\n  *(Elf32_Ehdr **)(puVar41 + -0x10) = pEVar34;\n  *(mp_size_t *)(puVar41 + -0x14) = an;\n  *(Elf32_Ehdr **)(puVar41 + -0x28) = pEVar20;\n  *(code **)(puVar41 + -4) = pcVar45;\n  *(undefined1 **)(puVar41 + -8) = puVar3 + -0x38;\n  *(gmp_pi1_t **)(puVar41 + -0xc) = dinv;\n  *(int *)(puVar41 + -0x2c) = *piVar7;\n  iVar14 = (*pcVar38)();\n  ptVar35 = ptVar33[1].next;\n  iVar15 = *(int *)(puVar41 + -0x88);\n  pEVar34 = (Elf32_Ehdr *)ptVar33->size;\n  ptVar16 = ptVar35->next;\n  if (iVar14 < 1) {\n    pEVar22 = (Elf32_Ehdr *)0xf4240;\n    iVar14 = (**(code **)(iVar15 + -0x7ab4))(ptVar33);\n    iVar15 = *(int *)(puVar41 + -0x88);\n    if (iVar14 < 1) {\n      if ((pEVar34 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar47 = 3;\n        while (uVar18 != 0) {\n          if (uVar47 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar47;\n          if ((uint)ptVar16 / uVar47 < uVar47) break;\n          uVar47 = uVar47 + 2;\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar35;\n    ptVar33 = (tmp_reentrant_t *)(puVar41 + -0x74);\n    *(Elf32_Ehdr **)(puVar41 + -0x70) = pEVar34;\n  }\n  if ((pEVar34 != (Elf32_Ehdr *)0x0) && (uVar18 = (uint)ptVar16 & 1, uVar18 != 0)) {\n    pEVar22 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar47 = (**(code **)(iVar15 + -0x7c24))(ptVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar41 + -0x88);\n    }\n    else {\n      uVar47 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x88);\n    }\n    if ((((((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)) &&\n          (uVar47 != (uVar47 / 7) * 7)) &&\n         ((uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd)))) &&\n        ((uVar47 != (uVar47 / 0x11) * 0x11 &&\n         ((uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17)))))) &&\n       (uVar47 != (uVar47 / 0x1d) * 0x1d)) {\n      uVar47 = (**(code **)(iVar15 + -0x7f14))(ptVar33,2);\n      iVar15 = *(int *)(puVar41 + -0x88);\n      if (0x1f < uVar47) {\n        iVar42 = 0;\n        iVar14 = 0;\n        uVar48 = 0x1f;\n        do {\n          uVar12 = 3;\n          do {\n            if (uVar12 == 0) {\n              trap(7);\n            }\n            uVar46 = uVar48 % uVar12;\n            if (uVar48 / uVar12 < uVar12) {\n              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;\n              break;\n            }\n            uVar12 = uVar12 + 2;\n            iVar28 = iVar14;\n          } while (uVar46 != 0);\n          uVar12 = uVar48 + 2;\n          iVar42 = (uint)(uVar12 < uVar48) + iVar42;\n          iVar14 = iVar28;\n          uVar48 = uVar12;\n        } while (uVar12 < uVar47);\n      }\n      (**(code **)(iVar15 + -0x7d48))(ptVar33);\n      iVar15 = *(int *)(puVar41 + -0x88);\n      pEVar22 = pEVar30;\n    }\n  }\nLAB_00032354:\n  iVar14 = *(int *)(puVar41 + -0x2c);\n  if (iVar14 == *piVar7) {\n    return;\n  }\n  pcVar43 = *(code **)(iVar15 + -0x7b70);\n  uVar44 = 0x32974;\n  (*pcVar43)();\n  pcVar38 = pcVar43 + 0x726c0;\n  pcVar13 = *(char **)(pcVar43 + 0x6a808);\n  *(int **)(puVar41 + -0xa0) = piVar7;\n  *(Elf32_Ehdr **)(puVar41 + -0xa4) = pEVar34;\n  *(code **)(puVar41 + -0xb0) = pcVar38;\n  *(undefined4 *)(puVar41 + -0x9c) = uVar44;\n  if (*pcVar13 == '\0') {\n    pcVar38 = *(code **)(pcVar43 + 0x6ac84);\n    uVar44 = *(undefined4 *)(pcVar43 + 0x6a8fc);\n    *pcVar13 = '\x01';\n    (*pcVar38)(uVar44);\n    pcVar38 = *(code **)(puVar41 + -0xb0);\n  }\n  pEVar34 = pEVar22;\n  if ((int)pEVar22 < 0) {\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar22;\n  }\n  (**(code **)(pcVar38 + -0x7f7c))(iVar14,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);\n  if ((int)pEVar22 < 0) {\n    *(int *)(iVar14 + 4) = -*(int *)(iVar14 + 4);\n  }\n  return;\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  mp_ptr pmVar6;\n  int *piVar7;\n  word *pwVar8;\n  word *pwVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  uint uVar12;\n  char *pcVar13;\n  int iVar14;\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  Elf32_Ehdr *pEVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  mp_limb_t mVar26;\n  mp_srcptr pmVar27;\n  int iVar28;\n  Elf32_Ehdr *in_t1;\n  Elf32_Ehdr *pEVar29;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  Elf32_Ehdr *pEVar30;\n  Elf32_Ehdr *pEVar31;\n  Elf32_Ehdr *pEVar32;\n  tmp_reentrant_t *ptVar33;\n  Elf32_Ehdr *pEVar34;\n  tmp_reentrant_t *ptVar35;\n  undefined *puVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  undefined1 *puVar39;\n  undefined1 *puVar40;\n  undefined1 *puVar41;\n  int iVar42;\n  code *pcVar43;\n  undefined4 uVar44;\n  code *pcVar45;\n  uint uVar46;\n  uint uVar47;\n  uint uVar48;\n  undefined8 uVar49;\n  undefined1 auStack_58 [24];\n  tmp_reentrant_t *__tmp_marker;\n  int local_2c;\n  \n  pEVar22 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;\n  puVar39 = auStack_58;\n  pEVar34 = (Elf32_Ehdr *)(an * 4);\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (pEVar34 < (Elf32_Ehdr *)0x7f01) {\n    iVar14 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar39 = auStack_58 + iVar14;\n    pEVar30 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar14);\n  }\n  else {\n    pEVar30 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,pEVar34)\n    ;\n  }\n  uVar18 = ((an - mn) + 1) * 4;\n  if (uVar18 < 0x7f01) {\n    iVar14 = -(uVar18 + 7 & 0xfffffff8);\n    puVar3 = puVar39 + iVar14 + 0x18;\n    puVar39 = puVar39 + iVar14;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n  }\n  if (an != 0) {\n    iVar14 = an + -1;\n    mVar26 = *ap;\n    if (iVar14 == 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      pEVar34 = 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        iVar14 = iVar14 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar14 != 0);\n      pEVar34 = (Elf32_Ehdr *)((int)&pEVar34[-1].e_shnum + (int)pEVar30);\n      pEVar34->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)mVar26;\n    }\n  }\n  *(undefined1 **)(puVar39 + 0x14) = puVar3;\n  *(gmp_pi1_t **)(puVar39 + 0x10) = dinv;\n  pEVar20 = (Elf32_Ehdr *)an;\n  pEVar29 = (Elf32_Ehdr *)mn;\n  mod((mp_ptr)pEVar30,an,mp,mn,*(gmp_pi1_t **)(puVar39 + 0x10),*(mp_ptr *)(puVar39 + 0x14));\n  pEVar32 = (Elf32_Ehdr *)mn;\n  if (mn != 0) {\n    iVar14 = mn + -1;\n    pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num;\n    pmVar6 = tp;\n    pEVar31 = pEVar30;\n    if (iVar14 != 0) {\n      do {\n        *pmVar6 = (mp_limb_t)pEVar20;\n        iVar14 = iVar14 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n        pmVar6 = pmVar6 + 1;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (iVar14 != 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 *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if (local_2c == *(int *)pEVar22) {\n    return;\n  }\n  pcVar43 = __gmpz_powm_ui;\n  puVar36 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  puVar37 = puVar36 + 0x73c70;\n  puVar4 = *(undefined4 **)(puVar36 + 0x6c170);\n  puVar41 = puVar39 + -0xa8;\n  puVar3 = puVar39 + -0xa8;\n  puVar40 = puVar39 + -0xa8;\n  *(undefined1 **)(puVar39 + -8) = auStack_58;\n  *(mp_srcptr *)(puVar39 + -0x20) = ap;\n  *(code **)(puVar39 + -4) = pcVar43;\n  *(undefined4 **)(puVar39 + -0x58) = puVar4;\n  *(gmp_pi1_t **)(puVar39 + -0xc) = dinv;\n  *(Elf32_Ehdr **)(puVar39 + -0x10) = pEVar34;\n  *(mp_size_t *)(puVar39 + -0x14) = an;\n  *(Elf32_Ehdr **)(puVar39 + -0x18) = pEVar22;\n  *(Elf32_Ehdr **)(puVar39 + -0x1c) = pEVar32;\n  *(Elf32_Ehdr **)(puVar39 + -0x24) = pEVar30;\n  *(mp_ptr *)(puVar39 + -0x28) = tp;\n  *(undefined **)(puVar39 + -0x90) = puVar37;\n  *(tmp_reentrant_t **)(puVar39 + -0x54) = ptVar16;\n  *(Elf32_Ehdr **)(puVar39 + -0x5c) = pEVar20;\n  *(Elf32_Ehdr **)(puVar39 + -0x68) = pEVar29;\n  *(undefined4 *)(puVar39 + -0x2c) = *puVar4;\n  pEVar31 = (Elf32_Ehdr *)mp;\n  if (mp < (Elf32_Ehdr *)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n    *(undefined4 *)(puVar39 + -0x4c) = *(undefined4 *)&pEVar29->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar39 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar22 = (Elf32_Ehdr *)mp;\n      uVar49 = (**(code **)(puVar36 + 0x6c210))();\nLAB_00031d4c:\n      uVar18 = (uint)uVar49;\n      pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)((ulonglong)uVar49 >> 0x20));\n      puVar3 = puVar41;\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if ((Elf32_Ehdr *)mp == (Elf32_Ehdr *)0x0) {\n        uVar18 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar39 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x54);\n        ptVar33 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar33->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar39 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar39 + -0x40) = 0;\n      *(word **)(puVar39 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar22 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar39 + -0x4c));\n      if (pEVar22 < &Elf32_Ehdr_00010000) {\n        iVar14 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar22) {\n          iVar14 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar22) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar14 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar22) {\n          iVar14 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar22) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(puVar36 + 0x6bdbc);\n      iVar14 = iVar14 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar22 >> iVar15];\n      *(int *)(puVar39 + -0x6c) = iVar14;\n      puVar41 = puVar39 + -0xa8;\n      if (iVar14 != 0) {\n        if (*(int *)(puVar39 + -0x50) + 4U < 0x7f01) {\n          iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar39 + iVar14 + -0xa8;\n          pEVar30 = (Elf32_Ehdr *)(puVar39 + iVar14 + -0x90);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar39 + -0x4c),pEVar34,*(undefined4 *)(puVar39 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        *(Elf32_Ehdr **)(puVar39 + -0x4c) = pEVar30;\n        pEVar22 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n        pEVar29 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4);\n      }\n      pEVar20 = (Elf32_Ehdr *)((uint)pEVar22 >> 0x10);\n      if (pEVar20 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar47 = ~(uint)pEVar22 / (uint)pEVar20;\n      in_t2 = (uint)pEVar22 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar47);\n      pEVar32 = (Elf32_Ehdr *)(~(uint)pEVar22 % (uint)pEVar20 << 0x10 | 0xffff);\n      uVar18 = uVar47;\n      in_t1 = pEVar29;\n      puVar3 = puVar41;\n      if (pEVar32 < in_t3) {\n        pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);\n        uVar18 = uVar47 - 1;\n        if ((pEVar22 <= pEVar32) && (uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar20 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar48 = (uint)((int)pEVar32 - (int)in_t3) / (uint)pEVar20;\n    pEVar32 = (Elf32_Ehdr *)((uint)((int)pEVar32 - (int)in_t3) % (uint)pEVar20 << 0x10 | 0xffff);\n    uVar47 = uVar48;\n    if ((pEVar32 < (Elf32_Ehdr *)(in_t2 * uVar48)) &&\n       (((Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num) < pEVar22 ||\n        (uVar47 = uVar48 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar48) <=\n        (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num))))) {\n      uVar47 = uVar48 - 1;\n    }\n    uVar47 = uVar18 << 0x10 | uVar47;\n    pEVar32 = (Elf32_Ehdr *)(&in_t1->e_ident_magic_num + uVar47 * (int)pEVar22);\n    lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);\n    if (pEVar32 < in_t1) {\n      uVar18 = pEVar32 < pEVar22 ^ 1;\n      pEVar20 = pEVar22;\n      if (uVar18 == 0) {\n        pEVar20 = (Elf32_Ehdr *)0x0;\n      }\n      uVar47 = (uVar47 - 1) - uVar18;\n      pEVar32 = (Elf32_Ehdr *)((int)pEVar32 + (-(int)pEVar20 - (int)pEVar22));\n      lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);\n    }\n    pEVar29 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar20 = (Elf32_Ehdr *)lVar2;\n    pEVar32 = (Elf32_Ehdr *)(&pEVar29->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);\n    uVar18 = uVar47;\n    if (((pEVar32 < pEVar29) && (uVar18 = uVar47 - 1, pEVar22 <= pEVar32)) &&\n       ((pEVar22 < pEVar32 || (in_t1 <= pEVar20)))) {\n      uVar18 = uVar47 - 2;\n    }\n    *(uint *)(puVar39 + -0x44) = uVar18;\n    pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 4);\n    pEVar32 = pEVar29;\n    if ((int)pEVar29 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar29;\n    }\n    pEVar22 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar29 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar39 + -100) = pEVar22;\n        *(uint *)(puVar39 + -0x70) = *(int *)(puVar39 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar39 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);\n      *(undefined4 *)(*(int *)(puVar39 + -0x54) + 4) = 0;\n      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00031764;\n      pcVar43 = *(code **)(puVar37 + -0x7a28);\nLAB_00031708:\n      (*pcVar43)();\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar18 = *(int *)(puVar39 + -0x50) + 4;\n    pEVar30 = (Elf32_Ehdr *)(uint)(uVar18 < 0x7f01);\n    *(uint *)(puVar39 + -0x70) = uVar18;\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      pcVar43 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar39 + -0x60) = pEVar32;\n      pmVar6 = (mp_ptr)(*pcVar43)(puVar39 + -0x40,uVar18);\n      pEVar32 = *(Elf32_Ehdr **)(puVar39 + -0x60);\n      *(mp_ptr *)(puVar39 + -100) = pmVar6;\n    }\n    else {\n      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n      pmVar6 = (mp_ptr)(puVar3 + iVar14 + 0x18);\n      *(mp_ptr *)(puVar39 + -100) = pmVar6;\n      puVar3 = puVar3 + iVar14;\n    }\n    pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar39 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar22;\n    reduce(pmVar6,(mp_srcptr)pEVar22,(mp_size_t)pEVar32,pmVar27,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14));\n    puVar37 = *(undefined **)(puVar39 + -0x90);\n    pEVar32 = pEVar34;\n    if (*(int *)((int)pmVar6 + *(int *)(puVar39 + -0x50)) == 0) {\n      iVar14 = (int)pmVar6 + *(int *)(puVar39 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar7 = (int *)(iVar14 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar14 = iVar14 + -4;\n      } while (*piVar7 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar14 = -((int)pEVar34 * 8 + 8);\n      pEVar22 = (Elf32_Ehdr *)(puVar3 + iVar14 + 0x18);\n      puVar3 = puVar3 + iVar14;\n    }\n    else {\n      pEVar22 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n    }\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      dinv = (gmp_pi1_t *)\n             (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40,*(undefined4 *)(puVar39 + -0x70));\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n    }\n    else {\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar39 + -0x50) + 8U < 0x7f01) {\n      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar39 + -0x74) = puVar3 + iVar14 + 0x18;\n      puVar3 = puVar3 + iVar14;\n    }\n    else {\n      uVar44 = (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      *(undefined4 *)(puVar39 + -0x74) = uVar44;\n    }\n    puVar4 = *(undefined4 **)(puVar39 + -100);\n    pwVar9 = (word *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar30 = (Elf32_Ehdr *)dinv;\n    pwVar8 = pwVar9;\n    if (pwVar9 != (word *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar8 != (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    iVar14 = 0x1f - (int)tp;\n    an = (mp_size_t)pEVar32;\n    if (iVar14 == 0) {\n      if (pEVar34 == pEVar32) {\n        pcVar13 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar34 * 4 + -1;\n        iVar14 = *(int *)(puVar39 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar14 + -4);\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          if (*(Elf32_Ehdr **)(pcVar13 + -4) != pEVar20) {\n            pcVar43 = *(code **)(puVar37 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20) goto LAB_000318d0;\n            goto LAB_00031d88;\n          }\n          pcVar13 = pcVar13 + -4;\n          iVar14 = iVar14 + -4;\n        } while (pwVar9 != (word *)0xffffffff);\n        pcVar43 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031d88:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar43)(dinv,dinv,*(undefined4 *)(puVar39 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n      }\n    }\n    else {\n      puVar41 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n      *(mp_srcptr *)(puVar39 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar39 + -0x84) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50);\n      *(undefined1 **)(puVar39 + -0x7c) = puVar39 + -0x44;\n      *(int *)(puVar39 + -0x80) = *(int *)(puVar37 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar39 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(puVar37 + -0x7cac))(pEVar22,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        if (an < (int)pEVar34) {\n          pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar22->e_ident_magic_num;\n            uVar24._1_1_ = pEVar22->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar22->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar22->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar9 != (word *)0x0) {\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n          pcVar43 = *(code **)(puVar39 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n          (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          uVar44._0_1_ = pEVar22->e_ident_magic_num;\n          uVar44._1_1_ = pEVar22->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar22->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar22->e_ident_magic_str[2];\n          if (puVar41 == (undefined1 *)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            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }\n          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar34;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar39 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar43)(pEVar22,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          if (an < (int)pEVar34) {\n            pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n            pcVar43 = *(code **)(puVar39 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n            (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n            puVar37 = *(undefined **)(puVar39 + -0x90);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;\n            pwVar9 = (word *)puVar41;\n            pEVar29 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar22;\n            if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n          }\n        }\n        iVar14 = iVar14 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar14 != 0);\n      mp = *(mp_srcptr *)(puVar39 + 8);\n      pEVar32 = (Elf32_Ehdr *)puVar41;\n    }\nLAB_000318d0:\n    pEVar30 = (Elf32_Ehdr *)0x0;\n    pEVar29 = *(Elf32_Ehdr **)(puVar39 + -0x6c);\n    if (pEVar29 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar13 = ((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            pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n            piVar7 = *(int **)(puVar39 + -0x54);\n            if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar7 = (int *)(pcVar13 + -8);\n          pcVar13 = pcVar13 + -4;\n        } while (*piVar7 == 0);\n      }\n      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n      piVar7 = *(int **)(puVar39 + -0x54);\n      if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n         (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar43 = *(code **)(puVar37 + -0x7a80);\n        if (*piVar7 < an) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        tp = *(mp_ptr *)(*(int *)(puVar39 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar14 = (**(code **)(puVar37 + -0x7b2c))(dinv,tp,dinv,an);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        pEVar30 = (Elf32_Ehdr *)an;\n        if (iVar14 == 0) {\nLAB_00031fd0:\n          an = (mp_size_t)pEVar30;\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30)) goto LAB_00031c50;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70));\n          pbVar11 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar11;\n            pbVar11 = pbVar11 + 4;\n            *(undefined4 *)pbVar10 = uVar44;\n            pbVar10 = pbVar10 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar11);\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str;\n          if (an < (int)pEVar34) {\n            pEVar20 = (Elf32_Ehdr *)(an * 4);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            iVar14 = *(int *)pbVar10;\n            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;\n            if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14);\n        iVar14._0_1_ = pEVar30->e_ident_magic_num;\n        iVar14._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar14._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar14._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar14 == 0) {\n          iVar14 = *(int *)(puVar39 + -0x78);\n          pbVar10 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x70);\n          do {\n            iVar14 = iVar14 + -1;\n            if (iVar14 == 0) {\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar7 = (int *)(pbVar10 + -8);\n            pbVar10 = pbVar10 + -4;\n          } while (*piVar7 == 0);\n          *(int *)(puVar39 + -0x78) = iVar14;\n        }\n        an = *(mp_size_t *)(puVar39 + -0x78);\n        if (**(int **)(puVar39 + -0x54) < an) {\n          an = *(mp_size_t *)(puVar39 + -0x78);\n          pcVar43 = *(code **)(puVar37 + -0x7a80);\nLAB_00031fa0:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar43)(*(undefined4 *)(puVar39 + -0x54));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          goto LAB_00031944;\n        }\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n      }\n      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;\n      puVar23 = *(undefined4 **)(*(int *)(puVar39 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar29 = (Elf32_Ehdr *)dinv;\n      if (pwVar9 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n        } while (pwVar9 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar22,dinv,an,pEVar29);\n      iVar42 = *(int *)(puVar39 + -0x90);\n      iVar14 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar22->e_ident_magic_str + iVar14 + -1) = iVar15;\n      tp = (mp_ptr)pEVar29;\n      if ((int)pEVar34 <= an) {\n        pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar39 + -0x44;\n        mod((mp_ptr)pEVar22,an,pmVar27,(mp_size_t)pEVar34,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar9 = (word *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar42 = *(int *)(puVar39 + -0x90);\n        uVar17._0_1_ = pEVar22->e_ident_magic_num;\n        uVar17._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 == (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)pEVar34;\n        }\n        else {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar17;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar34;\n        }\nLAB_00031de0:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar39 + -0x6c));\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        goto LAB_000318dc;\n      }\n      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar22->e_ident_magic_num;\n        uVar21._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 != (word *)0x0) {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar21;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          pEVar29 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar29->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_00031de0;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,0,pEVar29);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      pEVar31 = (Elf32_Ehdr *)mp;\nLAB_00031a04:\n      piVar7 = *(int **)(puVar39 + -0x54);\nLAB_00031a08:\n      if (*piVar7 < 0) {\n        tp = *(mp_ptr *)(puVar39 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a80))(tp);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\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 *)(puVar39 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);\n    piVar7 = *(int **)(puVar39 + -0x58);\n    if (ptVar16 != (tmp_reentrant_t *)0x0) {\n      pcVar43 = *(code **)(puVar37 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }\n  else {\n    pcVar43 = *(code **)(puVar36 + 0x6c110);\n    *(mp_srcptr *)(puVar39 + -0x3c) = mp;\n    *(undefined4 *)(puVar39 + -0x34) = 1;\n    *(undefined1 **)(puVar39 + -0x30) = puVar39 + -0x3c;\n    (*pcVar43)();\n    puVar37 = *(undefined **)(puVar39 + -0x90);\nLAB_00031764:\n    piVar7 = *(int **)(puVar39 + -0x58);\n  }\n  if (*(int *)(puVar39 + -0x2c) == *piVar7) {\n    return;\n  }\n  pcVar43 = *(code **)(puVar37 + -0x7b70);\n  uVar44 = 0x3206c;\n  (*pcVar43)();\n  pcVar38 = pcVar43 + 0x72fd0;\n  puVar41 = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar31;\n  piVar7 = *(int **)(pcVar43 + 0x6b4d0);\n  *(undefined1 **)(puVar3 + -8) = puVar39 + -0xa8;\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) = *piVar7;\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 **)(pcVar43 + 0x6b550))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;\n    }\n    iVar14 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar18 = 8;\n    do {\n      uVar47 = uVar18;\n      pEVar30 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar18 = uVar47 - 1;\n    } while (pEVar30 < pEVar20);\n    if (uVar47 == 0) {\n      trap(7);\n    }\n    uVar18 = ((iVar14 + 1U) / uVar47 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar18 < 0x7f01) {\n      iVar14 = -(uVar18 + 7 & 0xfffffff8);\n      puVar41 = puVar3 + iVar14 + -0x38;\n      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar14 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar47 = 1;\n    iVar14 = 0;\n    uVar18 = 0;\n    ptVar33 = (tmp_reentrant_t *)0x6;\n    do {\n      uVar48 = uVar18 + 1;\n      iVar42 = iVar14;\n      ptVar35 = ptVar33;\n      if ((uVar47 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar35 = (tmp_reentrant_t *)((uVar48 & 1) + 1 + uVar48 * 3);\n        if ((int)(ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar35 = (tmp_reentrant_t *)((int)ptVar33 * (int)ptVar35);\n        }\n        else {\n          iVar42 = iVar14 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1) = ptVar33;\n        }\n      }\n      uVar47 = uVar47 * 2 - ((int)uVar47 >> 0x1f);\n      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar47 & 1);\n      iVar14 = iVar42;\n      uVar18 = uVar48;\n      ptVar33 = ptVar35;\n    } while (bVar1);\n    if (iVar42 == 0) {\n      (ptVar16[1].next)->next = ptVar35;\n      ptVar16->size = 1;\n    }\n    else {\n      pcVar43 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar42 * 4 + -1) = ptVar35;\n      (*pcVar43)(ptVar16,pEVar30,iVar42 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    ptVar33 = *(tmp_reentrant_t **)(puVar3 + -0x20);\n    if (ptVar33 != (tmp_reentrant_t *)0x0) {\n      (**(code **)(pcVar38 + -0x7a28))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar29 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar43 + 0x6affc) + 0x3750);\n    (ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar29->e_ident_magic_num;\n    ptVar16->size = 1;\n    ptVar33 = ptVar16;\n    pEVar30 = pEVar20;\n    pEVar20 = pEVar29;\n    puVar41 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar7) {\n    return;\n  }\n  pcVar43 = *(code **)(pcVar38 + -0x7b70);\n  pcVar45 = __gmpz_probab_prime_p;\n  (*pcVar43)();\n  pcVar38 = *(code **)(pcVar43 + 0x6ae78);\n  *(tmp_reentrant_t **)(puVar41 + -0x24) = ptVar16;\n  *(int **)(puVar41 + -0x20) = piVar7;\n  piVar7 = *(int **)(pcVar43 + 0x6b270);\n  *(Elf32_Ehdr **)(puVar41 + -0x18) = pEVar22;\n  *(Elf32_Ehdr **)(puVar41 + -0x1c) = pEVar32;\n  pEVar22 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar41 + -0x88) = pcVar43 + 0x72d70;\n  *(Elf32_Ehdr **)(puVar41 + -0x10) = pEVar34;\n  *(mp_size_t *)(puVar41 + -0x14) = an;\n  *(Elf32_Ehdr **)(puVar41 + -0x28) = pEVar20;\n  *(code **)(puVar41 + -4) = pcVar45;\n  *(undefined1 **)(puVar41 + -8) = puVar3 + -0x38;\n  *(gmp_pi1_t **)(puVar41 + -0xc) = dinv;\n  *(int *)(puVar41 + -0x2c) = *piVar7;\n  iVar14 = (*pcVar38)();\n  ptVar35 = ptVar33[1].next;\n  iVar15 = *(int *)(puVar41 + -0x88);\n  pEVar34 = (Elf32_Ehdr *)ptVar33->size;\n  ptVar16 = ptVar35->next;\n  if (iVar14 < 1) {\n    pEVar22 = (Elf32_Ehdr *)0xf4240;\n    iVar14 = (**(code **)(iVar15 + -0x7ab4))(ptVar33);\n    iVar15 = *(int *)(puVar41 + -0x88);\n    if (iVar14 < 1) {\n      if ((pEVar34 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar47 = 3;\n        while (uVar18 != 0) {\n          if (uVar47 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar47;\n          if ((uint)ptVar16 / uVar47 < uVar47) break;\n          uVar47 = uVar47 + 2;\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar35;\n    ptVar33 = (tmp_reentrant_t *)(puVar41 + -0x74);\n    *(Elf32_Ehdr **)(puVar41 + -0x70) = pEVar34;\n  }\n  if ((pEVar34 != (Elf32_Ehdr *)0x0) && (uVar18 = (uint)ptVar16 & 1, uVar18 != 0)) {\n    pEVar22 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar47 = (**(code **)(iVar15 + -0x7c24))(ptVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar41 + -0x88);\n    }\n    else {\n      uVar47 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x88);\n    }\n    if ((((((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)) &&\n          (uVar47 != (uVar47 / 7) * 7)) &&\n         ((uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd)))) &&\n        ((uVar47 != (uVar47 / 0x11) * 0x11 &&\n         ((uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17)))))) &&\n       (uVar47 != (uVar47 / 0x1d) * 0x1d)) {\n      uVar47 = (**(code **)(iVar15 + -0x7f14))(ptVar33,2);\n      iVar15 = *(int *)(puVar41 + -0x88);\n      if (0x1f < uVar47) {\n        iVar42 = 0;\n        iVar14 = 0;\n        uVar48 = 0x1f;\n        do {\n          uVar12 = 3;\n          do {\n            if (uVar12 == 0) {\n              trap(7);\n            }\n            uVar46 = uVar48 % uVar12;\n            if (uVar48 / uVar12 < uVar12) {\n              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;\n              break;\n            }\n            uVar12 = uVar12 + 2;\n            iVar28 = iVar14;\n          } while (uVar46 != 0);\n          uVar12 = uVar48 + 2;\n          iVar42 = (uint)(uVar12 < uVar48) + iVar42;\n          iVar14 = iVar28;\n          uVar48 = uVar12;\n        } while (uVar12 < uVar47);\n      }\n      (**(code **)(iVar15 + -0x7d48))(ptVar33);\n      iVar15 = *(int *)(puVar41 + -0x88);\n      pEVar22 = pEVar30;\n    }\n  }\nLAB_00032354:\n  iVar14 = *(int *)(puVar41 + -0x2c);\n  if (iVar14 == *piVar7) {\n    return;\n  }\n  pcVar43 = *(code **)(iVar15 + -0x7b70);\n  uVar44 = 0x32974;\n  (*pcVar43)();\n  pcVar38 = pcVar43 + 0x726c0;\n  pcVar13 = *(char **)(pcVar43 + 0x6a808);\n  *(int **)(puVar41 + -0xa0) = piVar7;\n  *(Elf32_Ehdr **)(puVar41 + -0xa4) = pEVar34;\n  *(code **)(puVar41 + -0xb0) = pcVar38;\n  *(undefined4 *)(puVar41 + -0x9c) = uVar44;\n  if (*pcVar13 == '\0') {\n    pcVar38 = *(code **)(pcVar43 + 0x6ac84);\n    uVar44 = *(undefined4 *)(pcVar43 + 0x6a8fc);\n    *pcVar13 = '\x01';\n    (*pcVar38)(uVar44);\n    pcVar38 = *(code **)(puVar41 + -0xb0);\n  }\n  pEVar34 = pEVar22;\n  if ((int)pEVar22 < 0) {\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar22;\n  }\n  (**(code **)(pcVar38 + -0x7f7c))(iVar14,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);\n  if ((int)pEVar22 < 0) {\n    *(int *)(iVar14 + 4) = -*(int *)(iVar14 + 4);\n  }\n  return;\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 "mp_ptr pmVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "word *pwVar8;" type_identifier (pointer_declarator "*pwVar8" * identifier) ;) (declaration "word *pwVar9;" type_identifier (pointer_declarator "*pwVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "int iVar14;" primitive_type 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 "Elf32_Ehdr *pEVar22;" type_identifier (pointer_declarator "*pEVar22" * 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 "mp_srcptr pmVar27;" type_identifier identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "Elf32_Ehdr *in_t1;" type_identifier (pointer_declarator "*in_t1" * identifier) ;) (declaration "Elf32_Ehdr *pEVar29;" type_identifier (pointer_declarator "*pEVar29" * identifier) ;) (declaration "uint in_t2;" type_identifier identifier ;) (declaration "Elf32_Ehdr *in_t3;" type_identifier (pointer_declarator "*in_t3" * identifier) ;) (declaration "Elf32_Ehdr *pEVar30;" type_identifier (pointer_declarator "*pEVar30" * identifier) ;) (declaration "Elf32_Ehdr *pEVar31;" type_identifier (pointer_declarator "*pEVar31" * identifier) ;) (declaration "Elf32_Ehdr *pEVar32;" type_identifier (pointer_declarator "*pEVar32" * identifier) ;) (declaration "tmp_reentrant_t *ptVar33;" type_identifier (pointer_declarator "*ptVar33" * identifier) ;) (declaration "Elf32_Ehdr *pEVar34;" type_identifier (pointer_declarator "*pEVar34" * identifier) ;) (declaration "tmp_reentrant_t *ptVar35;" type_identifier (pointer_declarator "*ptVar35" * 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 "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 "code *pcVar45;" type_identifier (pointer_declarator "*pcVar45" * identifier) ;) (declaration "uint uVar46;" type_identifier identifier ;) (declaration "uint uVar47;" type_identifier identifier ;) (declaration "uint uVar48;" type_identifier identifier ;) (declaration "undefined8 uVar49;" type_identifier identifier ;) (declaration "undefined1 auStack_58 [24];" type_identifier (array_declarator "auStack_58 [24]" identifier [ number_literal ]) ;) (declaration "tmp_reentrant_t *__tmp_marker;" type_identifier (pointer_declarator "*__tmp_marker" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "pEVar22 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;" (assignment_expression "pEVar22 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540" identifier = (cast_expression "(Elf32_Ehdr *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar39 = auStack_58;" (assignment_expression "puVar39 = auStack_58" identifier = identifier) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)(an * 4);" (assignment_expression "pEVar34 = (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 "__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 = *(int *)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" * (cast_expression "(int *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (pEVar34 < (Elf32_Ehdr *)0x7f01) {\n    iVar14 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar39 = auStack_58 + iVar14;\n    pEVar30 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar14);\n  }\n  else {\n    pEVar30 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,pEVar34)\n    ;\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    iVar14 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);\n    puVar39 = auStack_58 + iVar14;\n    pEVar30 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar14);\n  }" { (expression_statement "iVar14 = -((uint)&pEVar34->e_ident_osabi & 0xfffffff8);" (assignment_expression "iVar14 = -((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 "puVar39 = auStack_58 + iVar14;" (assignment_expression "puVar39 = auStack_58 + iVar14" identifier = (binary_expression "auStack_58 + iVar14" identifier + identifier)) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar14);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar14)" identifier = (cast_expression "(Elf32_Ehdr *)(&stack0xffffffc0 + iVar14)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffc0 + iVar14)" ( (binary_expression "&stack0xffffffc0 + iVar14" (pointer_expression "&stack0xffffffc0" & identifier) + identifier) )))) ;) }) (else_clause "else {\n    pEVar30 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,pEVar34)\n    ;\n  }" else (compound_statement "{\n    pEVar30 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,pEVar34)\n    ;\n  }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,pEVar34)\n    ;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,pEVar34)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,pEVar34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,pEVar34)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&__tmp_marker,pEVar34)" ( (pointer_expression "&__tmp_marker" & 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    iVar14 = -(uVar18 + 7 & 0xfffffff8);\n    puVar3 = puVar39 + iVar14 + 0x18;\n    puVar39 = puVar39 + iVar14;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n  }" if (parenthesized_expression "(uVar18 < 0x7f01)" ( (binary_expression "uVar18 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar14 = -(uVar18 + 7 & 0xfffffff8);\n    puVar3 = puVar39 + iVar14 + 0x18;\n    puVar39 = puVar39 + iVar14;\n  }" { (expression_statement "iVar14 = -(uVar18 + 7 & 0xfffffff8);" (assignment_expression "iVar14 = -(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 = puVar39 + iVar14 + 0x18;" (assignment_expression "puVar3 = puVar39 + iVar14 + 0x18" identifier = (binary_expression "puVar39 + iVar14 + 0x18" (binary_expression "puVar39 + iVar14" identifier + identifier) + number_literal)) ;) (expression_statement "puVar39 = puVar39 + iVar14;" (assignment_expression "puVar39 = puVar39 + iVar14" identifier = (binary_expression "puVar39 + iVar14" identifier + identifier)) ;) }) (else_clause "else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n  }" else (compound_statement "{\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n  }" { (expression_statement "puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);" (assignment_expression "puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&__tmp_marker)" ( (pointer_expression "&__tmp_marker" & identifier) ))))) ;) }))) (if_statement "if (an != 0) {\n    iVar14 = an + -1;\n    mVar26 = *ap;\n    if (iVar14 == 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      pEVar34 = 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        iVar14 = iVar14 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar14 != 0);\n      pEVar34 = (Elf32_Ehdr *)((int)&pEVar34[-1].e_shnum + (int)pEVar30);\n      pEVar34->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)mVar26;\n    }\n  }" if (parenthesized_expression "(an != 0)" ( (binary_expression "an != 0" identifier != number_literal) )) (compound_statement "{\n    iVar14 = an + -1;\n    mVar26 = *ap;\n    if (iVar14 == 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      pEVar34 = 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        iVar14 = iVar14 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar14 != 0);\n      pEVar34 = (Elf32_Ehdr *)((int)&pEVar34[-1].e_shnum + (int)pEVar30);\n      pEVar34->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)mVar26;\n    }\n  }" { (expression_statement "iVar14 = an + -1;" (assignment_expression "iVar14 = 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 (iVar14 == 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      pEVar34 = 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        iVar14 = iVar14 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar14 != 0);\n      pEVar34 = (Elf32_Ehdr *)((int)&pEVar34[-1].e_shnum + (int)pEVar30);\n      pEVar34->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar34->e_ident_magic_str[2] = (char)mVar26;\n    }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 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      pEVar34 = 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 "pEVar34 = pEVar30;" (assignment_expression "pEVar34 = 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        iVar14 = iVar14 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar14 != 0);\n      pEVar34 = (Elf32_Ehdr *)((int)&pEVar34[-1].e_shnum + (int)pEVar30);\n      pEVar34->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar34->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        iVar14 = iVar14 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar14 != 0);\n      pEVar34 = (Elf32_Ehdr *)((int)&pEVar34[-1].e_shnum + (int)pEVar30);\n      pEVar34->e_ident_magic_num = (char)(mVar26 >> 0x18);\n      pEVar34->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);\n      pEVar34->e_ident_magic_str[1] = (char)(mVar26 >> 8);\n      pEVar34->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        iVar14 = iVar14 + -1;\n        mVar26 = *pmVar19;\n        pEVar32 = (Elf32_Ehdr *)&pEVar32->e_ident_class;\n        pmVar19 = pmVar19 + 1;\n      } while (iVar14 != 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        iVar14 = iVar14 + -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 "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -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 "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)((int)&pEVar34[-1].e_shnum + (int)pEVar30);" (assignment_expression "pEVar34 = (Elf32_Ehdr *)((int)&pEVar34[-1].e_shnum + (int)pEVar30)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar34[-1].e_shnum + (int)pEVar30)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar34[-1].e_shnum + (int)pEVar30)" ( (binary_expression "(int)&pEVar34[-1].e_shnum + (int)pEVar30" (cast_expression "(int)&pEVar34[-1].e_shnum" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar34[-1].e_shnum" & (field_expression "pEVar34[-1].e_shnum" (subscript_expression "pEVar34[-1]" identifier [ number_literal ]) . field_identifier))) + (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pEVar34->e_ident_magic_num = (char)(mVar26 >> 0x18);" (assignment_expression "pEVar34->e_ident_magic_num = (char)(mVar26 >> 0x18)" (field_expression "pEVar34->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 "pEVar34->e_ident_magic_str[0] = (char)(mVar26 >> 0x10);" (assignment_expression "pEVar34->e_ident_magic_str[0] = (char)(mVar26 >> 0x10)" (subscript_expression "pEVar34->e_ident_magic_str[0]" (field_expression "pEVar34->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 "pEVar34->e_ident_magic_str[1] = (char)(mVar26 >> 8);" (assignment_expression "pEVar34->e_ident_magic_str[1] = (char)(mVar26 >> 8)" (subscript_expression "pEVar34->e_ident_magic_str[1]" (field_expression "pEVar34->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 "pEVar34->e_ident_magic_str[2] = (char)mVar26;" (assignment_expression "pEVar34->e_ident_magic_str[2] = (char)mVar26" (subscript_expression "pEVar34->e_ident_magic_str[2]" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)mVar26" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) })) (expression_statement "*(undefined1 **)(puVar39 + 0x14) = puVar3;" (assignment_expression "*(undefined1 **)(puVar39 + 0x14) = puVar3" (pointer_expression "*(undefined1 **)(puVar39 + 0x14)" * (cast_expression "(undefined1 **)(puVar39 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x14)" ( (binary_expression "puVar39 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(gmp_pi1_t **)(puVar39 + 0x10) = dinv;" (assignment_expression "*(gmp_pi1_t **)(puVar39 + 0x10) = dinv" (pointer_expression "*(gmp_pi1_t **)(puVar39 + 0x10)" * (cast_expression "(gmp_pi1_t **)(puVar39 + 0x10)" ( (type_descriptor "gmp_pi1_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x10)" ( (binary_expression "puVar39 + 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 "pEVar29 = (Elf32_Ehdr *)mn;" (assignment_expression "pEVar29 = (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 **)(puVar39 + 0x10),*(mp_ptr *)(puVar39 + 0x14));" (call_expression "mod((mp_ptr)pEVar30,an,mp,mn,*(gmp_pi1_t **)(puVar39 + 0x10),*(mp_ptr *)(puVar39 + 0x14))" identifier (argument_list "((mp_ptr)pEVar30,an,mp,mn,*(gmp_pi1_t **)(puVar39 + 0x10),*(mp_ptr *)(puVar39 + 0x14))" ( (cast_expression "(mp_ptr)pEVar30" ( (type_descriptor "mp_ptr" type_identifier) ) identifier) , identifier , identifier , identifier , (pointer_expression "*(gmp_pi1_t **)(puVar39 + 0x10)" * (cast_expression "(gmp_pi1_t **)(puVar39 + 0x10)" ( (type_descriptor "gmp_pi1_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + 0x10)" ( (binary_expression "puVar39 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_ptr *)(puVar39 + 0x14)" * (cast_expression "(mp_ptr *)(puVar39 + 0x14)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + 0x14)" ( (binary_expression "puVar39 + 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    iVar14 = mn + -1;\n    pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num;\n    pmVar6 = tp;\n    pEVar31 = pEVar30;\n    if (iVar14 != 0) {\n      do {\n        *pmVar6 = (mp_limb_t)pEVar20;\n        iVar14 = iVar14 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n        pmVar6 = pmVar6 + 1;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (iVar14 != 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    iVar14 = mn + -1;\n    pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num;\n    pmVar6 = tp;\n    pEVar31 = pEVar30;\n    if (iVar14 != 0) {\n      do {\n        *pmVar6 = (mp_limb_t)pEVar20;\n        iVar14 = iVar14 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n        pmVar6 = pmVar6 + 1;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (iVar14 != 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 "iVar14 = mn + -1;" (assignment_expression "iVar14 = 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 "pmVar6 = tp;" (assignment_expression "pmVar6 = tp" identifier = identifier) ;) (expression_statement "pEVar31 = pEVar30;" (assignment_expression "pEVar31 = pEVar30" identifier = identifier) ;) (if_statement "if (iVar14 != 0) {\n      do {\n        *pmVar6 = (mp_limb_t)pEVar20;\n        iVar14 = iVar14 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n        pmVar6 = pmVar6 + 1;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (iVar14 != 0);\n      pEVar32 = (Elf32_Ehdr *)(mn * 4 + -4);\n      tp = tp + mn + -1;\n    }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        *pmVar6 = (mp_limb_t)pEVar20;\n        iVar14 = iVar14 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n        pmVar6 = pmVar6 + 1;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (iVar14 != 0);\n      pEVar32 = (Elf32_Ehdr *)(mn * 4 + -4);\n      tp = tp + mn + -1;\n    }" { (do_statement "do {\n        *pmVar6 = (mp_limb_t)pEVar20;\n        iVar14 = iVar14 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n        pmVar6 = pmVar6 + 1;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      } while (iVar14 != 0);" do (compound_statement "{\n        *pmVar6 = (mp_limb_t)pEVar20;\n        iVar14 = iVar14 + -1;\n        pEVar20 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n        pmVar6 = pmVar6 + 1;\n        pEVar31 = (Elf32_Ehdr *)&pEVar31->e_ident_class;\n      }" { (expression_statement "*pmVar6 = (mp_limb_t)pEVar20;" (assignment_expression "*pmVar6 = (mp_limb_t)pEVar20" (pointer_expression "*pmVar6" * identifier) = (cast_expression "(mp_limb_t)pEVar20" ( (type_descriptor "mp_limb_t" type_identifier) ) identifier)) ;) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -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 "pmVar6 = pmVar6 + 1;" (assignment_expression "pmVar6 = pmVar6 + 1" identifier = (binary_expression "pmVar6 + 1" identifier + number_literal)) ;) (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 "(iVar14 != 0)" ( (binary_expression "iVar14 != 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 *)PTR___gmp_tmp_reentrant_free_0009d618)();\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 *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_2c == *(int *)pEVar22) {\n    return;\n  }" if (parenthesized_expression "(local_2c == *(int *)pEVar22)" ( (binary_expression "local_2c == *(int *)pEVar22" identifier == (pointer_expression "*(int *)pEVar22" * (cast_expression "(int *)pEVar22" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar43 = __gmpz_powm_ui;" (assignment_expression "pcVar43 = __gmpz_powm_ui" identifier = identifier) ;) (expression_statement "puVar36 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar36 = PTR___stack_chk_fail_0009d4d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" * (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar37 = puVar36 + 0x73c70;" (assignment_expression "puVar37 = puVar36 + 0x73c70" identifier = (binary_expression "puVar36 + 0x73c70" identifier + number_literal)) ;) (expression_statement "puVar4 = *(undefined4 **)(puVar36 + 0x6c170);" (assignment_expression "puVar4 = *(undefined4 **)(puVar36 + 0x6c170)" identifier = (pointer_expression "*(undefined4 **)(puVar36 + 0x6c170)" * (cast_expression "(undefined4 **)(puVar36 + 0x6c170)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x6c170)" ( (binary_expression "puVar36 + 0x6c170" identifier + number_literal) ))))) ;) (expression_statement "puVar41 = puVar39 + -0xa8;" (assignment_expression "puVar41 = puVar39 + -0xa8" identifier = (binary_expression "puVar39 + -0xa8" identifier + number_literal)) ;) (expression_statement "puVar3 = puVar39 + -0xa8;" (assignment_expression "puVar3 = puVar39 + -0xa8" identifier = (binary_expression "puVar39 + -0xa8" identifier + number_literal)) ;) (expression_statement "puVar40 = puVar39 + -0xa8;" (assignment_expression "puVar40 = puVar39 + -0xa8" identifier = (binary_expression "puVar39 + -0xa8" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar39 + -8) = auStack_58;" (assignment_expression "*(undefined1 **)(puVar39 + -8) = auStack_58" (pointer_expression "*(undefined1 **)(puVar39 + -8)" * (cast_expression "(undefined1 **)(puVar39 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -8)" ( (binary_expression "puVar39 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_srcptr *)(puVar39 + -0x20) = ap;" (assignment_expression "*(mp_srcptr *)(puVar39 + -0x20) = ap" (pointer_expression "*(mp_srcptr *)(puVar39 + -0x20)" * (cast_expression "(mp_srcptr *)(puVar39 + -0x20)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x20)" ( (binary_expression "puVar39 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar39 + -4) = pcVar43;" (assignment_expression "*(code **)(puVar39 + -4) = pcVar43" (pointer_expression "*(code **)(puVar39 + -4)" * (cast_expression "(code **)(puVar39 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -4)" ( (binary_expression "puVar39 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar39 + -0x58) = puVar4;" (assignment_expression "*(undefined4 **)(puVar39 + -0x58) = puVar4" (pointer_expression "*(undefined4 **)(puVar39 + -0x58)" * (cast_expression "(undefined4 **)(puVar39 + -0x58)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x58)" ( (binary_expression "puVar39 + -0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(gmp_pi1_t **)(puVar39 + -0xc) = dinv;" (assignment_expression "*(gmp_pi1_t **)(puVar39 + -0xc) = dinv" (pointer_expression "*(gmp_pi1_t **)(puVar39 + -0xc)" * (cast_expression "(gmp_pi1_t **)(puVar39 + -0xc)" ( (type_descriptor "gmp_pi1_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0xc)" ( (binary_expression "puVar39 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar39 + -0x10) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar39 + -0x10) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar39 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar39 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x10)" ( (binary_expression "puVar39 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_size_t *)(puVar39 + -0x14) = an;" (assignment_expression "*(mp_size_t *)(puVar39 + -0x14) = an" (pointer_expression "*(mp_size_t *)(puVar39 + -0x14)" * (cast_expression "(mp_size_t *)(puVar39 + -0x14)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x14)" ( (binary_expression "puVar39 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar39 + -0x18) = pEVar22;" (assignment_expression "*(Elf32_Ehdr **)(puVar39 + -0x18) = pEVar22" (pointer_expression "*(Elf32_Ehdr **)(puVar39 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar39 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x18)" ( (binary_expression "puVar39 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar39 + -0x1c) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar39 + -0x1c) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar39 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar39 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x1c)" ( (binary_expression "puVar39 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar39 + -0x24) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar39 + -0x24) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar39 + -0x24)" * (cast_expression "(Elf32_Ehdr **)(puVar39 + -0x24)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x24)" ( (binary_expression "puVar39 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_ptr *)(puVar39 + -0x28) = tp;" (assignment_expression "*(mp_ptr *)(puVar39 + -0x28) = tp" (pointer_expression "*(mp_ptr *)(puVar39 + -0x28)" * (cast_expression "(mp_ptr *)(puVar39 + -0x28)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x28)" ( (binary_expression "puVar39 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar39 + -0x90) = puVar37;" (assignment_expression "*(undefined **)(puVar39 + -0x90) = puVar37" (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(tmp_reentrant_t **)(puVar39 + -0x54) = ptVar16;" (assignment_expression "*(tmp_reentrant_t **)(puVar39 + -0x54) = ptVar16" (pointer_expression "*(tmp_reentrant_t **)(puVar39 + -0x54)" * (cast_expression "(tmp_reentrant_t **)(puVar39 + -0x54)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar39 + -0x5c) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar39 + -0x5c) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar39 + -0x5c)" * (cast_expression "(Elf32_Ehdr **)(puVar39 + -0x5c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x5c)" ( (binary_expression "puVar39 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar39 + -0x68) = pEVar29;" (assignment_expression "*(Elf32_Ehdr **)(puVar39 + -0x68) = pEVar29" (pointer_expression "*(Elf32_Ehdr **)(puVar39 + -0x68)" * (cast_expression "(Elf32_Ehdr **)(puVar39 + -0x68)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x68)" ( (binary_expression "puVar39 + -0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar39 + -0x2c) = *puVar4;" (assignment_expression "*(undefined4 *)(puVar39 + -0x2c) = *puVar4" (pointer_expression "*(undefined4 *)(puVar39 + -0x2c)" * (cast_expression "(undefined4 *)(puVar39 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x2c)" ( (binary_expression "puVar39 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)mp;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)mp" identifier = (cast_expression "(Elf32_Ehdr *)mp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (mp < (Elf32_Ehdr *)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n    *(undefined4 *)(puVar39 + -0x4c) = *(undefined4 *)&pEVar29->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar39 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar22 = (Elf32_Ehdr *)mp;\n      uVar49 = (**(code **)(puVar36 + 0x6c210))();\nLAB_00031d4c:\n      uVar18 = (uint)uVar49;\n      pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)((ulonglong)uVar49 >> 0x20));\n      puVar3 = puVar41;\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if ((Elf32_Ehdr *)mp == (Elf32_Ehdr *)0x0) {\n        uVar18 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar39 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x54);\n        ptVar33 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar33->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar39 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar39 + -0x40) = 0;\n      *(word **)(puVar39 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar22 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar39 + -0x4c));\n      if (pEVar22 < &Elf32_Ehdr_00010000) {\n        iVar14 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar22) {\n          iVar14 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar22) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar14 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar22) {\n          iVar14 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar22) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(puVar36 + 0x6bdbc);\n      iVar14 = iVar14 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar22 >> iVar15];\n      *(int *)(puVar39 + -0x6c) = iVar14;\n      puVar41 = puVar39 + -0xa8;\n      if (iVar14 != 0) {\n        if (*(int *)(puVar39 + -0x50) + 4U < 0x7f01) {\n          iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar39 + iVar14 + -0xa8;\n          pEVar30 = (Elf32_Ehdr *)(puVar39 + iVar14 + -0x90);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar39 + -0x4c),pEVar34,*(undefined4 *)(puVar39 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        *(Elf32_Ehdr **)(puVar39 + -0x4c) = pEVar30;\n        pEVar22 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n        pEVar29 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4);\n      }\n      pEVar20 = (Elf32_Ehdr *)((uint)pEVar22 >> 0x10);\n      if (pEVar20 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar47 = ~(uint)pEVar22 / (uint)pEVar20;\n      in_t2 = (uint)pEVar22 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar47);\n      pEVar32 = (Elf32_Ehdr *)(~(uint)pEVar22 % (uint)pEVar20 << 0x10 | 0xffff);\n      uVar18 = uVar47;\n      in_t1 = pEVar29;\n      puVar3 = puVar41;\n      if (pEVar32 < in_t3) {\n        pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);\n        uVar18 = uVar47 - 1;\n        if ((pEVar22 <= pEVar32) && (uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar20 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar48 = (uint)((int)pEVar32 - (int)in_t3) / (uint)pEVar20;\n    pEVar32 = (Elf32_Ehdr *)((uint)((int)pEVar32 - (int)in_t3) % (uint)pEVar20 << 0x10 | 0xffff);\n    uVar47 = uVar48;\n    if ((pEVar32 < (Elf32_Ehdr *)(in_t2 * uVar48)) &&\n       (((Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num) < pEVar22 ||\n        (uVar47 = uVar48 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar48) <=\n        (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num))))) {\n      uVar47 = uVar48 - 1;\n    }\n    uVar47 = uVar18 << 0x10 | uVar47;\n    pEVar32 = (Elf32_Ehdr *)(&in_t1->e_ident_magic_num + uVar47 * (int)pEVar22);\n    lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);\n    if (pEVar32 < in_t1) {\n      uVar18 = pEVar32 < pEVar22 ^ 1;\n      pEVar20 = pEVar22;\n      if (uVar18 == 0) {\n        pEVar20 = (Elf32_Ehdr *)0x0;\n      }\n      uVar47 = (uVar47 - 1) - uVar18;\n      pEVar32 = (Elf32_Ehdr *)((int)pEVar32 + (-(int)pEVar20 - (int)pEVar22));\n      lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);\n    }\n    pEVar29 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar20 = (Elf32_Ehdr *)lVar2;\n    pEVar32 = (Elf32_Ehdr *)(&pEVar29->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);\n    uVar18 = uVar47;\n    if (((pEVar32 < pEVar29) && (uVar18 = uVar47 - 1, pEVar22 <= pEVar32)) &&\n       ((pEVar22 < pEVar32 || (in_t1 <= pEVar20)))) {\n      uVar18 = uVar47 - 2;\n    }\n    *(uint *)(puVar39 + -0x44) = uVar18;\n    pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 4);\n    pEVar32 = pEVar29;\n    if ((int)pEVar29 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar29;\n    }\n    pEVar22 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar29 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar39 + -100) = pEVar22;\n        *(uint *)(puVar39 + -0x70) = *(int *)(puVar39 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar39 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);\n      *(undefined4 *)(*(int *)(puVar39 + -0x54) + 4) = 0;\n      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00031764;\n      pcVar43 = *(code **)(puVar37 + -0x7a28);\nLAB_00031708:\n      (*pcVar43)();\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar18 = *(int *)(puVar39 + -0x50) + 4;\n    pEVar30 = (Elf32_Ehdr *)(uint)(uVar18 < 0x7f01);\n    *(uint *)(puVar39 + -0x70) = uVar18;\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      pcVar43 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar39 + -0x60) = pEVar32;\n      pmVar6 = (mp_ptr)(*pcVar43)(puVar39 + -0x40,uVar18);\n      pEVar32 = *(Elf32_Ehdr **)(puVar39 + -0x60);\n      *(mp_ptr *)(puVar39 + -100) = pmVar6;\n    }\n    else {\n      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n      pmVar6 = (mp_ptr)(puVar3 + iVar14 + 0x18);\n      *(mp_ptr *)(puVar39 + -100) = pmVar6;\n      puVar3 = puVar3 + iVar14;\n    }\n    pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar39 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar22;\n    reduce(pmVar6,(mp_srcptr)pEVar22,(mp_size_t)pEVar32,pmVar27,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14));\n    puVar37 = *(undefined **)(puVar39 + -0x90);\n    pEVar32 = pEVar34;\n    if (*(int *)((int)pmVar6 + *(int *)(puVar39 + -0x50)) == 0) {\n      iVar14 = (int)pmVar6 + *(int *)(puVar39 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar7 = (int *)(iVar14 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar14 = iVar14 + -4;\n      } while (*piVar7 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar14 = -((int)pEVar34 * 8 + 8);\n      pEVar22 = (Elf32_Ehdr *)(puVar3 + iVar14 + 0x18);\n      puVar3 = puVar3 + iVar14;\n    }\n    else {\n      pEVar22 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n    }\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      dinv = (gmp_pi1_t *)\n             (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40,*(undefined4 *)(puVar39 + -0x70));\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n    }\n    else {\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar39 + -0x50) + 8U < 0x7f01) {\n      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar39 + -0x74) = puVar3 + iVar14 + 0x18;\n      puVar3 = puVar3 + iVar14;\n    }\n    else {\n      uVar44 = (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      *(undefined4 *)(puVar39 + -0x74) = uVar44;\n    }\n    puVar4 = *(undefined4 **)(puVar39 + -100);\n    pwVar9 = (word *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar30 = (Elf32_Ehdr *)dinv;\n    pwVar8 = pwVar9;\n    if (pwVar9 != (word *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar8 != (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    iVar14 = 0x1f - (int)tp;\n    an = (mp_size_t)pEVar32;\n    if (iVar14 == 0) {\n      if (pEVar34 == pEVar32) {\n        pcVar13 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar34 * 4 + -1;\n        iVar14 = *(int *)(puVar39 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar14 + -4);\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          if (*(Elf32_Ehdr **)(pcVar13 + -4) != pEVar20) {\n            pcVar43 = *(code **)(puVar37 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20) goto LAB_000318d0;\n            goto LAB_00031d88;\n          }\n          pcVar13 = pcVar13 + -4;\n          iVar14 = iVar14 + -4;\n        } while (pwVar9 != (word *)0xffffffff);\n        pcVar43 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031d88:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar43)(dinv,dinv,*(undefined4 *)(puVar39 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n      }\n    }\n    else {\n      puVar41 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n      *(mp_srcptr *)(puVar39 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar39 + -0x84) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50);\n      *(undefined1 **)(puVar39 + -0x7c) = puVar39 + -0x44;\n      *(int *)(puVar39 + -0x80) = *(int *)(puVar37 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar39 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(puVar37 + -0x7cac))(pEVar22,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        if (an < (int)pEVar34) {\n          pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar22->e_ident_magic_num;\n            uVar24._1_1_ = pEVar22->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar22->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar22->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar9 != (word *)0x0) {\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n          pcVar43 = *(code **)(puVar39 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n          (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          uVar44._0_1_ = pEVar22->e_ident_magic_num;\n          uVar44._1_1_ = pEVar22->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar22->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar22->e_ident_magic_str[2];\n          if (puVar41 == (undefined1 *)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            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }\n          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar34;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar39 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar43)(pEVar22,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          if (an < (int)pEVar34) {\n            pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n            pcVar43 = *(code **)(puVar39 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n            (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n            puVar37 = *(undefined **)(puVar39 + -0x90);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;\n            pwVar9 = (word *)puVar41;\n            pEVar29 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar22;\n            if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n          }\n        }\n        iVar14 = iVar14 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar14 != 0);\n      mp = *(mp_srcptr *)(puVar39 + 8);\n      pEVar32 = (Elf32_Ehdr *)puVar41;\n    }\nLAB_000318d0:\n    pEVar30 = (Elf32_Ehdr *)0x0;\n    pEVar29 = *(Elf32_Ehdr **)(puVar39 + -0x6c);\n    if (pEVar29 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar13 = ((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            pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n            piVar7 = *(int **)(puVar39 + -0x54);\n            if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar7 = (int *)(pcVar13 + -8);\n          pcVar13 = pcVar13 + -4;\n        } while (*piVar7 == 0);\n      }\n      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n      piVar7 = *(int **)(puVar39 + -0x54);\n      if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n         (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar43 = *(code **)(puVar37 + -0x7a80);\n        if (*piVar7 < an) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        tp = *(mp_ptr *)(*(int *)(puVar39 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar14 = (**(code **)(puVar37 + -0x7b2c))(dinv,tp,dinv,an);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        pEVar30 = (Elf32_Ehdr *)an;\n        if (iVar14 == 0) {\nLAB_00031fd0:\n          an = (mp_size_t)pEVar30;\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30)) goto LAB_00031c50;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70));\n          pbVar11 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar11;\n            pbVar11 = pbVar11 + 4;\n            *(undefined4 *)pbVar10 = uVar44;\n            pbVar10 = pbVar10 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar11);\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str;\n          if (an < (int)pEVar34) {\n            pEVar20 = (Elf32_Ehdr *)(an * 4);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            iVar14 = *(int *)pbVar10;\n            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;\n            if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14);\n        iVar14._0_1_ = pEVar30->e_ident_magic_num;\n        iVar14._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar14._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar14._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar14 == 0) {\n          iVar14 = *(int *)(puVar39 + -0x78);\n          pbVar10 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x70);\n          do {\n            iVar14 = iVar14 + -1;\n            if (iVar14 == 0) {\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar7 = (int *)(pbVar10 + -8);\n            pbVar10 = pbVar10 + -4;\n          } while (*piVar7 == 0);\n          *(int *)(puVar39 + -0x78) = iVar14;\n        }\n        an = *(mp_size_t *)(puVar39 + -0x78);\n        if (**(int **)(puVar39 + -0x54) < an) {\n          an = *(mp_size_t *)(puVar39 + -0x78);\n          pcVar43 = *(code **)(puVar37 + -0x7a80);\nLAB_00031fa0:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar43)(*(undefined4 *)(puVar39 + -0x54));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          goto LAB_00031944;\n        }\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n      }\n      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;\n      puVar23 = *(undefined4 **)(*(int *)(puVar39 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar29 = (Elf32_Ehdr *)dinv;\n      if (pwVar9 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n        } while (pwVar9 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar22,dinv,an,pEVar29);\n      iVar42 = *(int *)(puVar39 + -0x90);\n      iVar14 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar22->e_ident_magic_str + iVar14 + -1) = iVar15;\n      tp = (mp_ptr)pEVar29;\n      if ((int)pEVar34 <= an) {\n        pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar39 + -0x44;\n        mod((mp_ptr)pEVar22,an,pmVar27,(mp_size_t)pEVar34,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar9 = (word *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar42 = *(int *)(puVar39 + -0x90);\n        uVar17._0_1_ = pEVar22->e_ident_magic_num;\n        uVar17._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 == (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)pEVar34;\n        }\n        else {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar17;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar34;\n        }\nLAB_00031de0:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar39 + -0x6c));\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        goto LAB_000318dc;\n      }\n      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar22->e_ident_magic_num;\n        uVar21._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 != (word *)0x0) {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar21;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          pEVar29 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar29->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_00031de0;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,0,pEVar29);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      pEVar31 = (Elf32_Ehdr *)mp;\nLAB_00031a04:\n      piVar7 = *(int **)(puVar39 + -0x54);\nLAB_00031a08:\n      if (*piVar7 < 0) {\n        tp = *(mp_ptr *)(puVar39 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a80))(tp);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\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 *)(puVar39 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);\n    piVar7 = *(int **)(puVar39 + -0x58);\n    if (ptVar16 != (tmp_reentrant_t *)0x0) {\n      pcVar43 = *(code **)(puVar37 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }\n  else {\n    pcVar43 = *(code **)(puVar36 + 0x6c110);\n    *(mp_srcptr *)(puVar39 + -0x3c) = mp;\n    *(undefined4 *)(puVar39 + -0x34) = 1;\n    *(undefined1 **)(puVar39 + -0x30) = puVar39 + -0x3c;\n    (*pcVar43)();\n    puVar37 = *(undefined **)(puVar39 + -0x90);\nLAB_00031764:\n    piVar7 = *(int **)(puVar39 + -0x58);\n  }" if (parenthesized_expression "(mp < (Elf32_Ehdr *)0x14)" ( (binary_expression "mp < (Elf32_Ehdr *)0x14" identifier < (cast_expression "(Elf32_Ehdr *)0x14" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pEVar5 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n    *(undefined4 *)(puVar39 + -0x4c) = *(undefined4 *)&pEVar29->e_ident_abiversion;\n    pEVar34 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar34 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar39 + -0x78) = pEVar34;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar22 = (Elf32_Ehdr *)mp;\n      uVar49 = (**(code **)(puVar36 + 0x6c210))();\nLAB_00031d4c:\n      uVar18 = (uint)uVar49;\n      pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)((ulonglong)uVar49 >> 0x20));\n      puVar3 = puVar41;\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if ((Elf32_Ehdr *)mp == (Elf32_Ehdr *)0x0) {\n        uVar18 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar39 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x54);\n        ptVar33 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar33->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar39 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar39 + -0x40) = 0;\n      *(word **)(puVar39 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar22 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar39 + -0x4c));\n      if (pEVar22 < &Elf32_Ehdr_00010000) {\n        iVar14 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar22) {\n          iVar14 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar22) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar14 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar22) {\n          iVar14 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar22) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(puVar36 + 0x6bdbc);\n      iVar14 = iVar14 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar22 >> iVar15];\n      *(int *)(puVar39 + -0x6c) = iVar14;\n      puVar41 = puVar39 + -0xa8;\n      if (iVar14 != 0) {\n        if (*(int *)(puVar39 + -0x50) + 4U < 0x7f01) {\n          iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar39 + iVar14 + -0xa8;\n          pEVar30 = (Elf32_Ehdr *)(puVar39 + iVar14 + -0x90);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar39 + -0x4c),pEVar34,*(undefined4 *)(puVar39 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        *(Elf32_Ehdr **)(puVar39 + -0x4c) = pEVar30;\n        pEVar22 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n        pEVar29 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4);\n      }\n      pEVar20 = (Elf32_Ehdr *)((uint)pEVar22 >> 0x10);\n      if (pEVar20 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar47 = ~(uint)pEVar22 / (uint)pEVar20;\n      in_t2 = (uint)pEVar22 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar47);\n      pEVar32 = (Elf32_Ehdr *)(~(uint)pEVar22 % (uint)pEVar20 << 0x10 | 0xffff);\n      uVar18 = uVar47;\n      in_t1 = pEVar29;\n      puVar3 = puVar41;\n      if (pEVar32 < in_t3) {\n        pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);\n        uVar18 = uVar47 - 1;\n        if ((pEVar22 <= pEVar32) && (uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar20 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar48 = (uint)((int)pEVar32 - (int)in_t3) / (uint)pEVar20;\n    pEVar32 = (Elf32_Ehdr *)((uint)((int)pEVar32 - (int)in_t3) % (uint)pEVar20 << 0x10 | 0xffff);\n    uVar47 = uVar48;\n    if ((pEVar32 < (Elf32_Ehdr *)(in_t2 * uVar48)) &&\n       (((Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num) < pEVar22 ||\n        (uVar47 = uVar48 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar48) <=\n        (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num))))) {\n      uVar47 = uVar48 - 1;\n    }\n    uVar47 = uVar18 << 0x10 | uVar47;\n    pEVar32 = (Elf32_Ehdr *)(&in_t1->e_ident_magic_num + uVar47 * (int)pEVar22);\n    lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);\n    if (pEVar32 < in_t1) {\n      uVar18 = pEVar32 < pEVar22 ^ 1;\n      pEVar20 = pEVar22;\n      if (uVar18 == 0) {\n        pEVar20 = (Elf32_Ehdr *)0x0;\n      }\n      uVar47 = (uVar47 - 1) - uVar18;\n      pEVar32 = (Elf32_Ehdr *)((int)pEVar32 + (-(int)pEVar20 - (int)pEVar22));\n      lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);\n    }\n    pEVar29 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar20 = (Elf32_Ehdr *)lVar2;\n    pEVar32 = (Elf32_Ehdr *)(&pEVar29->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);\n    uVar18 = uVar47;\n    if (((pEVar32 < pEVar29) && (uVar18 = uVar47 - 1, pEVar22 <= pEVar32)) &&\n       ((pEVar22 < pEVar32 || (in_t1 <= pEVar20)))) {\n      uVar18 = uVar47 - 2;\n    }\n    *(uint *)(puVar39 + -0x44) = uVar18;\n    pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 4);\n    pEVar32 = pEVar29;\n    if ((int)pEVar29 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar29;\n    }\n    pEVar22 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 8);\n    if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar29 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar39 + -100) = pEVar22;\n        *(uint *)(puVar39 + -0x70) = *(int *)(puVar39 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar39 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);\n      *(undefined4 *)(*(int *)(puVar39 + -0x54) + 4) = 0;\n      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00031764;\n      pcVar43 = *(code **)(puVar37 + -0x7a28);\nLAB_00031708:\n      (*pcVar43)();\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar18 = *(int *)(puVar39 + -0x50) + 4;\n    pEVar30 = (Elf32_Ehdr *)(uint)(uVar18 < 0x7f01);\n    *(uint *)(puVar39 + -0x70) = uVar18;\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      pcVar43 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar39 + -0x60) = pEVar32;\n      pmVar6 = (mp_ptr)(*pcVar43)(puVar39 + -0x40,uVar18);\n      pEVar32 = *(Elf32_Ehdr **)(puVar39 + -0x60);\n      *(mp_ptr *)(puVar39 + -100) = pmVar6;\n    }\n    else {\n      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n      pmVar6 = (mp_ptr)(puVar3 + iVar14 + 0x18);\n      *(mp_ptr *)(puVar39 + -100) = pmVar6;\n      puVar3 = puVar3 + iVar14;\n    }\n    pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar39 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar34;\n    pEVar20 = pEVar22;\n    reduce(pmVar6,(mp_srcptr)pEVar22,(mp_size_t)pEVar32,pmVar27,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14));\n    puVar37 = *(undefined **)(puVar39 + -0x90);\n    pEVar32 = pEVar34;\n    if (*(int *)((int)pmVar6 + *(int *)(puVar39 + -0x50)) == 0) {\n      iVar14 = (int)pmVar6 + *(int *)(puVar39 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar7 = (int *)(iVar14 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar14 = iVar14 + -4;\n      } while (*piVar7 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar14 = -((int)pEVar34 * 8 + 8);\n      pEVar22 = (Elf32_Ehdr *)(puVar3 + iVar14 + 0x18);\n      puVar3 = puVar3 + iVar14;\n    }\n    else {\n      pEVar22 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n    }\n    if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      dinv = (gmp_pi1_t *)\n             (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40,*(undefined4 *)(puVar39 + -0x70));\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n    }\n    else {\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar39 + -0x50) + 8U < 0x7f01) {\n      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar39 + -0x74) = puVar3 + iVar14 + 0x18;\n      puVar3 = puVar3 + iVar14;\n    }\n    else {\n      uVar44 = (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      *(undefined4 *)(puVar39 + -0x74) = uVar44;\n    }\n    puVar4 = *(undefined4 **)(puVar39 + -100);\n    pwVar9 = (word *)((int)&pEVar32[-1].e_shstrndx + 1);\n    pEVar20 = (Elf32_Ehdr *)*puVar4;\n    pEVar30 = (Elf32_Ehdr *)dinv;\n    pwVar8 = pwVar9;\n    if (pwVar9 != (word *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar8 != (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    iVar14 = 0x1f - (int)tp;\n    an = (mp_size_t)pEVar32;\n    if (iVar14 == 0) {\n      if (pEVar34 == pEVar32) {\n        pcVar13 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar34 * 4 + -1;\n        iVar14 = *(int *)(puVar39 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar14 + -4);\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          if (*(Elf32_Ehdr **)(pcVar13 + -4) != pEVar20) {\n            pcVar43 = *(code **)(puVar37 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20) goto LAB_000318d0;\n            goto LAB_00031d88;\n          }\n          pcVar13 = pcVar13 + -4;\n          iVar14 = iVar14 + -4;\n        } while (pwVar9 != (word *)0xffffffff);\n        pcVar43 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031d88:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar43)(dinv,dinv,*(undefined4 *)(puVar39 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n      }\n    }\n    else {\n      puVar41 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n      *(mp_srcptr *)(puVar39 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar39 + -0x84) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50);\n      *(undefined1 **)(puVar39 + -0x7c) = puVar39 + -0x44;\n      *(int *)(puVar39 + -0x80) = *(int *)(puVar37 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar39 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(puVar37 + -0x7cac))(pEVar22,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        if (an < (int)pEVar34) {\n          pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar22->e_ident_magic_num;\n            uVar24._1_1_ = pEVar22->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar22->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar22->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar9 != (word *)0x0) {\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n          pcVar43 = *(code **)(puVar39 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n          (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          uVar44._0_1_ = pEVar22->e_ident_magic_num;\n          uVar44._1_1_ = pEVar22->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar22->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar22->e_ident_magic_str[2];\n          if (puVar41 == (undefined1 *)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            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }\n          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar34;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar39 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar43)(pEVar22,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          if (an < (int)pEVar34) {\n            pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n            pcVar43 = *(code **)(puVar39 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n            (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n            puVar37 = *(undefined **)(puVar39 + -0x90);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;\n            pwVar9 = (word *)puVar41;\n            pEVar29 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar22;\n            if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n          }\n        }\n        iVar14 = iVar14 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar14 != 0);\n      mp = *(mp_srcptr *)(puVar39 + 8);\n      pEVar32 = (Elf32_Ehdr *)puVar41;\n    }\nLAB_000318d0:\n    pEVar30 = (Elf32_Ehdr *)0x0;\n    pEVar29 = *(Elf32_Ehdr **)(puVar39 + -0x6c);\n    if (pEVar29 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar13 = ((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            pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n            piVar7 = *(int **)(puVar39 + -0x54);\n            if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar7 = (int *)(pcVar13 + -8);\n          pcVar13 = pcVar13 + -4;\n        } while (*piVar7 == 0);\n      }\n      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n      piVar7 = *(int **)(puVar39 + -0x54);\n      if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n         (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar43 = *(code **)(puVar37 + -0x7a80);\n        if (*piVar7 < an) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        tp = *(mp_ptr *)(*(int *)(puVar39 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar14 = (**(code **)(puVar37 + -0x7b2c))(dinv,tp,dinv,an);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        pEVar30 = (Elf32_Ehdr *)an;\n        if (iVar14 == 0) {\nLAB_00031fd0:\n          an = (mp_size_t)pEVar30;\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30)) goto LAB_00031c50;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70));\n          pbVar11 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar11;\n            pbVar11 = pbVar11 + 4;\n            *(undefined4 *)pbVar10 = uVar44;\n            pbVar10 = pbVar10 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar11);\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str;\n          if (an < (int)pEVar34) {\n            pEVar20 = (Elf32_Ehdr *)(an * 4);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            iVar14 = *(int *)pbVar10;\n            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;\n            if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14);\n        iVar14._0_1_ = pEVar30->e_ident_magic_num;\n        iVar14._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar14._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar14._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar14 == 0) {\n          iVar14 = *(int *)(puVar39 + -0x78);\n          pbVar10 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x70);\n          do {\n            iVar14 = iVar14 + -1;\n            if (iVar14 == 0) {\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar7 = (int *)(pbVar10 + -8);\n            pbVar10 = pbVar10 + -4;\n          } while (*piVar7 == 0);\n          *(int *)(puVar39 + -0x78) = iVar14;\n        }\n        an = *(mp_size_t *)(puVar39 + -0x78);\n        if (**(int **)(puVar39 + -0x54) < an) {\n          an = *(mp_size_t *)(puVar39 + -0x78);\n          pcVar43 = *(code **)(puVar37 + -0x7a80);\nLAB_00031fa0:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar43)(*(undefined4 *)(puVar39 + -0x54));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          goto LAB_00031944;\n        }\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n      }\n      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;\n      puVar23 = *(undefined4 **)(*(int *)(puVar39 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar29 = (Elf32_Ehdr *)dinv;\n      if (pwVar9 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n        } while (pwVar9 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar22,dinv,an,pEVar29);\n      iVar42 = *(int *)(puVar39 + -0x90);\n      iVar14 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar22->e_ident_magic_str + iVar14 + -1) = iVar15;\n      tp = (mp_ptr)pEVar29;\n      if ((int)pEVar34 <= an) {\n        pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar39 + -0x44;\n        mod((mp_ptr)pEVar22,an,pmVar27,(mp_size_t)pEVar34,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar9 = (word *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar42 = *(int *)(puVar39 + -0x90);\n        uVar17._0_1_ = pEVar22->e_ident_magic_num;\n        uVar17._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 == (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)pEVar34;\n        }\n        else {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar17;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar34;\n        }\nLAB_00031de0:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar39 + -0x6c));\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        goto LAB_000318dc;\n      }\n      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar22->e_ident_magic_num;\n        uVar21._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 != (word *)0x0) {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar21;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          pEVar29 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar29->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_00031de0;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,0,pEVar29);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      pEVar31 = (Elf32_Ehdr *)mp;\nLAB_00031a04:\n      piVar7 = *(int **)(puVar39 + -0x54);\nLAB_00031a08:\n      if (*piVar7 < 0) {\n        tp = *(mp_ptr *)(puVar39 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a80))(tp);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\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 *)(puVar39 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);\n    piVar7 = *(int **)(puVar39 + -0x58);\n    if (ptVar16 != (tmp_reentrant_t *)0x0) {\n      pcVar43 = *(code **)(puVar37 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }" { (expression_statement "pEVar5 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;" (assignment_expression "pEVar5 = *(Elf32_Ehdr **)&pEVar29->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar29->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar29->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar29->e_ident_class" & (field_expression "pEVar29->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "*(undefined4 *)(puVar39 + -0x4c) = *(undefined4 *)&pEVar29->e_ident_abiversion;" (assignment_expression "*(undefined4 *)(puVar39 + -0x4c) = *(undefined4 *)&pEVar29->e_ident_abiversion" (pointer_expression "*(undefined4 *)(puVar39 + -0x4c)" * (cast_expression "(undefined4 *)(puVar39 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x4c)" ( (binary_expression "puVar39 + -0x4c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)&pEVar29->e_ident_abiversion" * (cast_expression "(undefined4 *)&pEVar29->e_ident_abiversion" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar29->e_ident_abiversion" & (field_expression "pEVar29->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 **)(puVar39 + -0x78) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar39 + -0x78) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar39 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar39 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x78)" ( (binary_expression "puVar39 + -0x78" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar22 = (Elf32_Ehdr *)mp;\n      uVar49 = (**(code **)(puVar36 + 0x6c210))();\nLAB_00031d4c:\n      uVar18 = (uint)uVar49;\n      pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)((ulonglong)uVar49 >> 0x20));\n      puVar3 = puVar41;\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if ((Elf32_Ehdr *)mp == (Elf32_Ehdr *)0x0) {\n        uVar18 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar39 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x54);\n        ptVar33 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar33->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar39 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar39 + -0x40) = 0;\n      *(word **)(puVar39 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar22 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar39 + -0x4c));\n      if (pEVar22 < &Elf32_Ehdr_00010000) {\n        iVar14 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar22) {\n          iVar14 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar22) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar14 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar22) {\n          iVar14 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar22) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(puVar36 + 0x6bdbc);\n      iVar14 = iVar14 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar22 >> iVar15];\n      *(int *)(puVar39 + -0x6c) = iVar14;\n      puVar41 = puVar39 + -0xa8;\n      if (iVar14 != 0) {\n        if (*(int *)(puVar39 + -0x50) + 4U < 0x7f01) {\n          iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar39 + iVar14 + -0xa8;\n          pEVar30 = (Elf32_Ehdr *)(puVar39 + iVar14 + -0x90);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar39 + -0x4c),pEVar34,*(undefined4 *)(puVar39 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        *(Elf32_Ehdr **)(puVar39 + -0x4c) = pEVar30;\n        pEVar22 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n        pEVar29 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4);\n      }\n      pEVar20 = (Elf32_Ehdr *)((uint)pEVar22 >> 0x10);\n      if (pEVar20 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar47 = ~(uint)pEVar22 / (uint)pEVar20;\n      in_t2 = (uint)pEVar22 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar47);\n      pEVar32 = (Elf32_Ehdr *)(~(uint)pEVar22 % (uint)pEVar20 << 0x10 | 0xffff);\n      uVar18 = uVar47;\n      in_t1 = pEVar29;\n      puVar3 = puVar41;\n      if (pEVar32 < in_t3) {\n        pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);\n        uVar18 = uVar47 - 1;\n        if ((pEVar22 <= pEVar32) && (uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3))\n        goto LAB_00031d4c;\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      pEVar22 = (Elf32_Ehdr *)mp;\n      uVar49 = (**(code **)(puVar36 + 0x6c210))();\nLAB_00031d4c:\n      uVar18 = (uint)uVar49;\n      pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)((ulonglong)uVar49 >> 0x20));\n      puVar3 = puVar41;\n    }" { (expression_statement "pEVar22 = (Elf32_Ehdr *)mp;" (assignment_expression "pEVar22 = (Elf32_Ehdr *)mp" identifier = (cast_expression "(Elf32_Ehdr *)mp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar49 = (**(code **)(puVar36 + 0x6c210))();" (assignment_expression "uVar49 = (**(code **)(puVar36 + 0x6c210))()" identifier = (call_expression "(**(code **)(puVar36 + 0x6c210))()" (parenthesized_expression "(**(code **)(puVar36 + 0x6c210))" ( (pointer_expression "**(code **)(puVar36 + 0x6c210)" * (pointer_expression "*(code **)(puVar36 + 0x6c210)" * (cast_expression "(code **)(puVar36 + 0x6c210)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x6c210)" ( (binary_expression "puVar36 + 0x6c210" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_00031d4c:\n      uVar18 = (uint)uVar49;" statement_identifier : (expression_statement "uVar18 = (uint)uVar49;" (assignment_expression "uVar18 = (uint)uVar49" identifier = (cast_expression "(uint)uVar49" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)((ulonglong)uVar49 >> 0x20));" (assignment_expression "pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)((ulonglong)uVar49 >> 0x20))" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)((ulonglong)uVar49 >> 0x20))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar22->e_ident_magic_num + (int)((ulonglong)uVar49 >> 0x20))" ( (binary_expression "&pEVar22->e_ident_magic_num + (int)((ulonglong)uVar49 >> 0x20)" (pointer_expression "&pEVar22->e_ident_magic_num" & (field_expression "pEVar22->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)((ulonglong)uVar49 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (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)pEVar34 * 4);\n      if ((Elf32_Ehdr *)mp == (Elf32_Ehdr *)0x0) {\n        uVar18 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar39 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x54);\n        ptVar33 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar33->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar39 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar39 + -0x40) = 0;\n      *(word **)(puVar39 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar22 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar39 + -0x4c));\n      if (pEVar22 < &Elf32_Ehdr_00010000) {\n        iVar14 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar22) {\n          iVar14 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar22) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar14 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar22) {\n          iVar14 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar22) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(puVar36 + 0x6bdbc);\n      iVar14 = iVar14 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar22 >> iVar15];\n      *(int *)(puVar39 + -0x6c) = iVar14;\n      puVar41 = puVar39 + -0xa8;\n      if (iVar14 != 0) {\n        if (*(int *)(puVar39 + -0x50) + 4U < 0x7f01) {\n          iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar39 + iVar14 + -0xa8;\n          pEVar30 = (Elf32_Ehdr *)(puVar39 + iVar14 + -0x90);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar39 + -0x4c),pEVar34,*(undefined4 *)(puVar39 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        *(Elf32_Ehdr **)(puVar39 + -0x4c) = pEVar30;\n        pEVar22 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n        pEVar29 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4);\n      }\n      pEVar20 = (Elf32_Ehdr *)((uint)pEVar22 >> 0x10);\n      if (pEVar20 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar47 = ~(uint)pEVar22 / (uint)pEVar20;\n      in_t2 = (uint)pEVar22 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar47);\n      pEVar32 = (Elf32_Ehdr *)(~(uint)pEVar22 % (uint)pEVar20 << 0x10 | 0xffff);\n      uVar18 = uVar47;\n      in_t1 = pEVar29;\n      puVar3 = puVar41;\n      if (pEVar32 < in_t3) {\n        pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);\n        uVar18 = uVar47 - 1;\n        if ((pEVar22 <= pEVar32) && (uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }" else (compound_statement "{\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar34 * 4);\n      if ((Elf32_Ehdr *)mp == (Elf32_Ehdr *)0x0) {\n        uVar18 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar39 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x54);\n        ptVar33 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar33->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar39 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar39 + -0x40) = 0;\n      *(word **)(puVar39 + -0x50) = &pEVar30[-1].e_shnum;\n      pEVar22 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar39 + -0x4c));\n      if (pEVar22 < &Elf32_Ehdr_00010000) {\n        iVar14 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar22) {\n          iVar14 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar22) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar14 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar22) {\n          iVar14 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar22) {\n          iVar15 = 0x11;\n        }\n      }\n      tp = *(mp_ptr *)(puVar36 + 0x6bdbc);\n      iVar14 = iVar14 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar22 >> iVar15];\n      *(int *)(puVar39 + -0x6c) = iVar14;\n      puVar41 = puVar39 + -0xa8;\n      if (iVar14 != 0) {\n        if (*(int *)(puVar39 + -0x50) + 4U < 0x7f01) {\n          iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar39 + iVar14 + -0xa8;\n          pEVar30 = (Elf32_Ehdr *)(puVar39 + iVar14 + -0x90);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar39 + -0x4c),pEVar34,*(undefined4 *)(puVar39 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        *(Elf32_Ehdr **)(puVar39 + -0x4c) = pEVar30;\n        pEVar22 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50));\n        puVar41 = puVar40;\n      }\n      if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n        pEVar29 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4);\n      }\n      pEVar20 = (Elf32_Ehdr *)((uint)pEVar22 >> 0x10);\n      if (pEVar20 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar47 = ~(uint)pEVar22 / (uint)pEVar20;\n      in_t2 = (uint)pEVar22 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar47);\n      pEVar32 = (Elf32_Ehdr *)(~(uint)pEVar22 % (uint)pEVar20 << 0x10 | 0xffff);\n      uVar18 = uVar47;\n      in_t1 = pEVar29;\n      puVar3 = puVar41;\n      if (pEVar32 < in_t3) {\n        pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);\n        uVar18 = uVar47 - 1;\n        if ((pEVar22 <= pEVar32) && (uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)((int)pEVar34 * 4);" (assignment_expression "pEVar30 = (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 ((Elf32_Ehdr *)mp == (Elf32_Ehdr *)0x0) {\n        uVar18 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar39 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x54);\n        ptVar33 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar33->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar39 + -0xa8;\n        goto LAB_00031764;\n      }" if (parenthesized_expression "((Elf32_Ehdr *)mp == (Elf32_Ehdr *)0x0)" ( (binary_expression "(Elf32_Ehdr *)mp == (Elf32_Ehdr *)0x0" (cast_expression "(Elf32_Ehdr *)mp" ( (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        uVar18 = 1;\n        if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar39 + -0x4c) != 1);\n        }\n        ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x54);\n        ptVar33 = ptVar16[1].next;\n        ptVar16->size = uVar18;\n        ptVar33->next = (tmp_reentrant_t *)0x1;\n        puVar3 = puVar39 + -0xa8;\n        goto LAB_00031764;\n      }" { (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (if_statement "if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar18 = (uint)(**(int **)(puVar39 + -0x4c) != 1);\n        }" if (parenthesized_expression "(pEVar34 == (Elf32_Ehdr *)&DAT_00000001)" ( (binary_expression "pEVar34 == (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 **)(puVar39 + -0x4c) != 1);\n        }" { (expression_statement "uVar18 = (uint)(**(int **)(puVar39 + -0x4c) != 1);" (assignment_expression "uVar18 = (uint)(**(int **)(puVar39 + -0x4c) != 1)" identifier = (call_expression "(uint)(**(int **)(puVar39 + -0x4c) != 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(**(int **)(puVar39 + -0x4c) != 1)" ( (binary_expression "**(int **)(puVar39 + -0x4c) != 1" (pointer_expression "**(int **)(puVar39 + -0x4c)" * (pointer_expression "*(int **)(puVar39 + -0x4c)" * (cast_expression "(int **)(puVar39 + -0x4c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x4c)" ( (binary_expression "puVar39 + -0x4c" identifier + number_literal) ))))) != number_literal) )))) ;) })) (expression_statement "ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x54);" (assignment_expression "ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x54)" identifier = (pointer_expression "*(tmp_reentrant_t **)(puVar39 + -0x54)" * (cast_expression "(tmp_reentrant_t **)(puVar39 + -0x54)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "ptVar33 = ptVar16[1].next;" (assignment_expression "ptVar33 = 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 "ptVar33->next = (tmp_reentrant_t *)0x1;" (assignment_expression "ptVar33->next = (tmp_reentrant_t *)0x1" (field_expression "ptVar33->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 = puVar39 + -0xa8;" (assignment_expression "puVar3 = puVar39 + -0xa8" identifier = (binary_expression "puVar39 + -0xa8" identifier + number_literal)) ;) (goto_statement "goto LAB_00031764;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar39 + -0x40) = 0;" (assignment_expression "*(undefined4 *)(puVar39 + -0x40) = 0" (pointer_expression "*(undefined4 *)(puVar39 + -0x40)" * (cast_expression "(undefined4 *)(puVar39 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x40)" ( (binary_expression "puVar39 + -0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(word **)(puVar39 + -0x50) = &pEVar30[-1].e_shnum;" (assignment_expression "*(word **)(puVar39 + -0x50) = &pEVar30[-1].e_shnum" (pointer_expression "*(word **)(puVar39 + -0x50)" * (cast_expression "(word **)(puVar39 + -0x50)" ( (type_descriptor "word **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -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 "pEVar22 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar39 + -0x4c));" (assignment_expression "pEVar22 = *(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar39 + -0x4c))" identifier = (pointer_expression "*(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar39 + -0x4c))" * (cast_expression "(Elf32_Ehdr **)((int)&pEVar30[-1].e_shnum + *(int *)(puVar39 + -0x4c))" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pEVar30[-1].e_shnum + *(int *)(puVar39 + -0x4c))" ( (binary_expression "(int)&pEVar30[-1].e_shnum + *(int *)(puVar39 + -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 *)(puVar39 + -0x4c)" * (cast_expression "(int *)(puVar39 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x4c)" ( (binary_expression "puVar39 + -0x4c" identifier + number_literal) ))))) ))))) ;) (if_statement "if (pEVar22 < &Elf32_Ehdr_00010000) {\n        iVar14 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar22) {\n          iVar14 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar22) {\n          iVar15 = 1;\n        }\n      }\n      else {\n        iVar14 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar22) {\n          iVar14 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar22) {\n          iVar15 = 0x11;\n        }\n      }" if (parenthesized_expression "(pEVar22 < &Elf32_Ehdr_00010000)" ( (binary_expression "pEVar22 < &Elf32_Ehdr_00010000" identifier < (pointer_expression "&Elf32_Ehdr_00010000" & identifier)) )) (compound_statement "{\n        iVar14 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar22) {\n          iVar14 = 0x18;\n        }\n        iVar15 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar22) {\n          iVar15 = 1;\n        }\n      }" { (expression_statement "iVar14 = 0x20;" (assignment_expression "iVar14 = 0x20" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff < pEVar22) {\n          iVar14 = 0x18;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xff < pEVar22)" ( (binary_expression "(Elf32_Ehdr *)0xff < pEVar22" (cast_expression "(Elf32_Ehdr *)0xff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n          iVar14 = 0x18;\n        }" { (expression_statement "iVar14 = 0x18;" (assignment_expression "iVar14 = 0x18" identifier = number_literal) ;) })) (expression_statement "iVar15 = 9;" (assignment_expression "iVar15 = 9" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff >= pEVar22) {\n          iVar15 = 1;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xff >= pEVar22)" ( (binary_expression "(Elf32_Ehdr *)0xff >= pEVar22" (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        iVar14 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar22) {\n          iVar14 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar22) {\n          iVar15 = 0x11;\n        }\n      }" else (compound_statement "{\n        iVar14 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar22) {\n          iVar14 = 8;\n        }\n        iVar15 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar22) {\n          iVar15 = 0x11;\n        }\n      }" { (expression_statement "iVar14 = 0x10;" (assignment_expression "iVar14 = 0x10" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff < pEVar22) {\n          iVar14 = 8;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xffffff < pEVar22)" ( (binary_expression "(Elf32_Ehdr *)0xffffff < pEVar22" (cast_expression "(Elf32_Ehdr *)0xffffff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n          iVar14 = 8;\n        }" { (expression_statement "iVar14 = 8;" (assignment_expression "iVar14 = 8" identifier = number_literal) ;) })) (expression_statement "iVar15 = 0x19;" (assignment_expression "iVar15 = 0x19" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff >= pEVar22) {\n          iVar15 = 0x11;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xffffff >= pEVar22)" ( (binary_expression "(Elf32_Ehdr *)0xffffff >= pEVar22" (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 *)(puVar36 + 0x6bdbc);" (assignment_expression "tp = *(mp_ptr *)(puVar36 + 0x6bdbc)" identifier = (pointer_expression "*(mp_ptr *)(puVar36 + 0x6bdbc)" * (cast_expression "(mp_ptr *)(puVar36 + 0x6bdbc)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x6bdbc)" ( (binary_expression "puVar36 + 0x6bdbc" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = iVar14 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar22 >> iVar15];" (assignment_expression "iVar14 = iVar14 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar22 >> iVar15]" identifier = (binary_expression "iVar14 - (uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar22 >> iVar15]" identifier - (subscript_expression "(uint)(&((Elf32_Ehdr *)tp)->e_ident_magic_num)[(uint)pEVar22 >> 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)pEVar22 >> iVar15" (cast_expression "(uint)pEVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) ]))) ;) (expression_statement "*(int *)(puVar39 + -0x6c) = iVar14;" (assignment_expression "*(int *)(puVar39 + -0x6c) = iVar14" (pointer_expression "*(int *)(puVar39 + -0x6c)" * (cast_expression "(int *)(puVar39 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x6c)" ( (binary_expression "puVar39 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar41 = puVar39 + -0xa8;" (assignment_expression "puVar41 = puVar39 + -0xa8" identifier = (binary_expression "puVar39 + -0xa8" identifier + number_literal)) ;) (if_statement "if (iVar14 != 0) {\n        if (*(int *)(puVar39 + -0x50) + 4U < 0x7f01) {\n          iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar39 + iVar14 + -0xa8;\n          pEVar30 = (Elf32_Ehdr *)(puVar39 + iVar14 + -0x90);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar39 + -0x4c),pEVar34,*(undefined4 *)(puVar39 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        *(Elf32_Ehdr **)(puVar39 + -0x4c) = pEVar30;\n        pEVar22 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50));\n        puVar41 = puVar40;\n      }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(puVar39 + -0x50) + 4U < 0x7f01) {\n          iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar39 + iVar14 + -0xa8;\n          pEVar30 = (Elf32_Ehdr *)(puVar39 + iVar14 + -0x90);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n        }\n        (**(code **)(puVar37 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar39 + -0x4c),pEVar34,*(undefined4 *)(puVar39 + -0x6c)\n                  );\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        *(Elf32_Ehdr **)(puVar39 + -0x4c) = pEVar30;\n        pEVar22 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50));\n        puVar41 = puVar40;\n      }" { (if_statement "if (*(int *)(puVar39 + -0x50) + 4U < 0x7f01) {\n          iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar39 + iVar14 + -0xa8;\n          pEVar30 = (Elf32_Ehdr *)(puVar39 + iVar14 + -0x90);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n        }" if (parenthesized_expression "(*(int *)(puVar39 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar39 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar39 + -0x50) + 4U" (pointer_expression "*(int *)(puVar39 + -0x50)" * (cast_expression "(int *)(puVar39 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n          iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n          puVar40 = puVar39 + iVar14 + -0xa8;\n          pEVar30 = (Elf32_Ehdr *)(puVar39 + iVar14 + -0x90);\n        }" { (expression_statement "iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar39 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar39 + -0x50)" * (cast_expression "(int *)(puVar39 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "puVar40 = puVar39 + iVar14 + -0xa8;" (assignment_expression "puVar40 = puVar39 + iVar14 + -0xa8" identifier = (binary_expression "puVar39 + iVar14 + -0xa8" (binary_expression "puVar39 + iVar14" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(puVar39 + iVar14 + -0x90);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(puVar39 + iVar14 + -0x90)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar39 + iVar14 + -0x90)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + iVar14 + -0x90)" ( (binary_expression "puVar39 + iVar14 + -0x90" (binary_expression "puVar39 + iVar14" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n        }" else (compound_statement "{\n          pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n        }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x6bf20))(puVar39 + -0x40)" (parenthesized_expression "(**(code **)(puVar36 + 0x6bf20))" ( (pointer_expression "**(code **)(puVar36 + 0x6bf20)" * (pointer_expression "*(code **)(puVar36 + 0x6bf20)" * (cast_expression "(code **)(puVar36 + 0x6bf20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x6bf20)" ( (binary_expression "puVar36 + 0x6bf20" identifier + number_literal) ))))) )) (argument_list "(puVar39 + -0x40)" ( (binary_expression "puVar39 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) }))) (expression_statement "(**(code **)(puVar37 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar39 + -0x4c),pEVar34,*(undefined4 *)(puVar39 + -0x6c)\n                  );" (call_expression "(**(code **)(puVar37 + -0x7ad4))\n                  (pEVar30,*(undefined4 *)(puVar39 + -0x4c),pEVar34,*(undefined4 *)(puVar39 + -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 "(pEVar30,*(undefined4 *)(puVar39 + -0x4c),pEVar34,*(undefined4 *)(puVar39 + -0x6c)\n                  )" ( identifier , (pointer_expression "*(undefined4 *)(puVar39 + -0x4c)" * (cast_expression "(undefined4 *)(puVar39 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x4c)" ( (binary_expression "puVar39 + -0x4c" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(puVar39 + -0x6c)" * (cast_expression "(undefined4 *)(puVar39 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x6c)" ( (binary_expression "puVar39 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar39 + -0x4c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar39 + -0x4c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar39 + -0x4c)" * (cast_expression "(Elf32_Ehdr **)(puVar39 + -0x4c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x4c)" ( (binary_expression "puVar39 + -0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar22 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50));" (assignment_expression "pEVar22 = *(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50))" identifier = (pointer_expression "*(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50))" * (cast_expression "(Elf32_Ehdr **)(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50))" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50))" ( (binary_expression "&pEVar30->e_ident_magic_num + *(int *)(puVar39 + -0x50)" (pointer_expression "&pEVar30->e_ident_magic_num" & (field_expression "pEVar30->e_ident_magic_num" identifier -> field_identifier)) + (pointer_expression "*(int *)(puVar39 + -0x50)" * (cast_expression "(int *)(puVar39 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -0x50" identifier + number_literal) ))))) ))))) ;) (expression_statement "puVar41 = puVar40;" (assignment_expression "puVar41 = puVar40" identifier = identifier) ;) })) (if_statement "if (pEVar34 == (Elf32_Ehdr *)&DAT_00000001) {\n        pEVar29 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4);\n      }" if (parenthesized_expression "(pEVar34 == (Elf32_Ehdr *)&DAT_00000001)" ( (binary_expression "pEVar34 == (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        pEVar29 = (Elf32_Ehdr *)0x0;\n      }" { (expression_statement "pEVar29 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar29 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4);\n      }" else (compound_statement "{\n        pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4);\n      }" { (expression_statement "pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4);" (assignment_expression "pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4)" ( (binary_expression "*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50) + -4" (binary_expression "*(int *)(puVar39 + -0x4c) + *(int *)(puVar39 + -0x50)" (pointer_expression "*(int *)(puVar39 + -0x4c)" * (cast_expression "(int *)(puVar39 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x4c)" ( (binary_expression "puVar39 + -0x4c" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar39 + -0x50)" * (cast_expression "(int *)(puVar39 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -0x50" identifier + number_literal) ))))) + number_literal) ))))) ;) }))) (expression_statement "pEVar20 = (Elf32_Ehdr *)((uint)pEVar22 >> 0x10);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((uint)pEVar22 >> 0x10)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar22 >> 0x10)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar22 >> 0x10)" ( (binary_expression "(uint)pEVar22 >> 0x10" (cast_expression "(uint)pEVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (pEVar20 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }" if (parenthesized_expression "(pEVar20 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar20 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) 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)pEVar22 / (uint)pEVar20;" (assignment_expression "uVar47 = ~(uint)pEVar22 / (uint)pEVar20" identifier = (binary_expression "~(uint)pEVar22 / (uint)pEVar20" (unary_expression "~(uint)pEVar22" ~ (cast_expression "(uint)pEVar22" ( (type_descriptor "uint" type_identifier) ) identifier)) / (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "in_t2 = (uint)pEVar22 & 0xffff;" (assignment_expression "in_t2 = (uint)pEVar22 & 0xffff" identifier = (binary_expression "(uint)pEVar22 & 0xffff" (cast_expression "(uint)pEVar22" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "in_t3 = (Elf32_Ehdr *)(in_t2 * uVar47);" (assignment_expression "in_t3 = (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) )))) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)(~(uint)pEVar22 % (uint)pEVar20 << 0x10 | 0xffff);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)(~(uint)pEVar22 % (uint)pEVar20 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)(~(uint)pEVar22 % (uint)pEVar20 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~(uint)pEVar22 % (uint)pEVar20 << 0x10 | 0xffff)" ( (binary_expression "~(uint)pEVar22 % (uint)pEVar20 << 0x10 | 0xffff" (binary_expression "~(uint)pEVar22 % (uint)pEVar20 << 0x10" (binary_expression "~(uint)pEVar22 % (uint)pEVar20" (unary_expression "~(uint)pEVar22" ~ (cast_expression "(uint)pEVar22" ( (type_descriptor "uint" type_identifier) ) identifier)) % (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) | number_literal) )))) ;) (expression_statement "uVar18 = uVar47;" (assignment_expression "uVar18 = uVar47" identifier = identifier) ;) (expression_statement "in_t1 = pEVar29;" (assignment_expression "in_t1 = pEVar29" identifier = identifier) ;) (expression_statement "puVar3 = puVar41;" (assignment_expression "puVar3 = puVar41" identifier = identifier) ;) (if_statement "if (pEVar32 < in_t3) {\n        pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);\n        uVar18 = uVar47 - 1;\n        if ((pEVar22 <= pEVar32) && (uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3))\n        goto LAB_00031d4c;\n      }" if (parenthesized_expression "(pEVar32 < in_t3)" ( (binary_expression "pEVar32 < in_t3" identifier < identifier) )) (compound_statement "{\n        pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);\n        uVar18 = uVar47 - 1;\n        if ((pEVar22 <= pEVar32) && (uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3))\n        goto LAB_00031d4c;\n      }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num)" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num)" ( (binary_expression "&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num" (pointer_expression "&pEVar22->e_ident_magic_num" & (field_expression "pEVar22->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)&pEVar32->e_ident_magic_num" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar32->e_ident_magic_num" & (field_expression "pEVar32->e_ident_magic_num" identifier -> field_identifier)))) )))) ;) (expression_statement "uVar18 = uVar47 - 1;" (assignment_expression "uVar18 = uVar47 - 1" identifier = (binary_expression "uVar47 - 1" identifier - number_literal)) ;) (if_statement "if ((pEVar22 <= pEVar32) && (uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3))\n        goto LAB_00031d4c;" if (parenthesized_expression "((pEVar22 <= pEVar32) && (uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3))" ( (binary_expression "(pEVar22 <= pEVar32) && (uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3)" (parenthesized_expression "(pEVar22 <= pEVar32)" ( (binary_expression "pEVar22 <= pEVar32" identifier <= identifier) )) && (parenthesized_expression "(uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3)" ( (comma_expression "uVar49 = CONCAT44(pEVar32,uVar47 - 2), pEVar32 < in_t3" (assignment_expression "uVar49 = CONCAT44(pEVar32,uVar47 - 2)" identifier = (call_expression "CONCAT44(pEVar32,uVar47 - 2)" identifier (argument_list "(pEVar32,uVar47 - 2)" ( identifier , (binary_expression "uVar47 - 2" identifier - number_literal) )))) , (binary_expression "pEVar32 < in_t3" identifier < identifier)) ))) )) (goto_statement "goto LAB_00031d4c;" goto statement_identifier ;)) })) }))) (if_statement "if (pEVar20 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }" if (parenthesized_expression "(pEVar20 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar20 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar48 = (uint)((int)pEVar32 - (int)in_t3) / (uint)pEVar20;" (assignment_expression "uVar48 = (uint)((int)pEVar32 - (int)in_t3) / (uint)pEVar20" identifier = (binary_expression "(uint)((int)pEVar32 - (int)in_t3) / (uint)pEVar20" (call_expression "(uint)((int)pEVar32 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar32 - (int)in_t3)" ( (binary_expression "(int)pEVar32 - (int)in_t3" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)((uint)((int)pEVar32 - (int)in_t3) % (uint)pEVar20 << 0x10 | 0xffff);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)((uint)((int)pEVar32 - (int)in_t3) % (uint)pEVar20 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)((int)pEVar32 - (int)in_t3) % (uint)pEVar20 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)pEVar32 - (int)in_t3) % (uint)pEVar20 << 0x10 | 0xffff)" ( (binary_expression "(uint)((int)pEVar32 - (int)in_t3) % (uint)pEVar20 << 0x10 | 0xffff" (binary_expression "(uint)((int)pEVar32 - (int)in_t3) % (uint)pEVar20 << 0x10" (binary_expression "(uint)((int)pEVar32 - (int)in_t3) % (uint)pEVar20" (call_expression "(uint)((int)pEVar32 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar32 - (int)in_t3)" ( (binary_expression "(int)pEVar32 - (int)in_t3" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) % (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) | number_literal) )))) ;) (expression_statement "uVar47 = uVar48;" (assignment_expression "uVar47 = uVar48" identifier = identifier) ;) (if_statement "if ((pEVar32 < (Elf32_Ehdr *)(in_t2 * uVar48)) &&\n       (((Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num) < pEVar22 ||\n        (uVar47 = uVar48 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar48) <=\n        (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num))))) {\n      uVar47 = uVar48 - 1;\n    }" if (parenthesized_expression "((pEVar32 < (Elf32_Ehdr *)(in_t2 * uVar48)) &&\n       (((Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num) < pEVar22 ||\n        (uVar47 = uVar48 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar48) <=\n        (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num)))))" ( (binary_expression "(pEVar32 < (Elf32_Ehdr *)(in_t2 * uVar48)) &&\n       (((Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num) < pEVar22 ||\n        (uVar47 = uVar48 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar48) <=\n        (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num))))" (parenthesized_expression "(pEVar32 < (Elf32_Ehdr *)(in_t2 * uVar48))" ( (binary_expression "pEVar32 < (Elf32_Ehdr *)(in_t2 * uVar48)" identifier < (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar48)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar48)" ( (binary_expression "in_t2 * uVar48" identifier * identifier) )))) )) && (parenthesized_expression "(((Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num) < pEVar22 ||\n        (uVar47 = uVar48 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar48) <=\n        (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num))))" ( (parenthesized_expression "((Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num) < pEVar22 ||\n        (uVar47 = uVar48 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar48) <=\n        (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num)))" ( (binary_expression "(Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num) < pEVar22 ||\n        (uVar47 = uVar48 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar48) <=\n        (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num))" (binary_expression "(Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num) < pEVar22" (cast_expression "(Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num)" ( (binary_expression "&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num" (pointer_expression "&pEVar22->e_ident_magic_num" & (field_expression "pEVar22->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)&pEVar32->e_ident_magic_num" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar32->e_ident_magic_num" & (field_expression "pEVar32->e_ident_magic_num" identifier -> field_identifier)))) ))) < identifier) || (parenthesized_expression "(uVar47 = uVar48 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar48) <=\n        (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num))" ( (comma_expression "uVar47 = uVar48 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar48) <=\n        (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num)" (assignment_expression "uVar47 = uVar48 - 2" identifier = (binary_expression "uVar48 - 2" identifier - number_literal)) , (binary_expression "(Elf32_Ehdr *)(in_t2 * uVar48) <=\n        (Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num)" (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar48)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar48)" ( (binary_expression "in_t2 * uVar48" identifier * identifier) ))) <= (cast_expression "(Elf32_Ehdr *)(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num)" ( (binary_expression "&pEVar22->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num" (pointer_expression "&pEVar22->e_ident_magic_num" & (field_expression "pEVar22->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)&pEVar32->e_ident_magic_num" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar32->e_ident_magic_num" & (field_expression "pEVar32->e_ident_magic_num" identifier -> field_identifier)))) ))))) ))) )) ))) )) (compound_statement "{\n      uVar47 = uVar48 - 1;\n    }" { (expression_statement "uVar47 = uVar48 - 1;" (assignment_expression "uVar47 = uVar48 - 1" identifier = (binary_expression "uVar48 - 1" identifier - number_literal)) ;) })) (expression_statement "uVar47 = uVar18 << 0x10 | uVar47;" (assignment_expression "uVar47 = uVar18 << 0x10 | uVar47" identifier = (binary_expression "uVar18 << 0x10 | uVar47" (binary_expression "uVar18 << 0x10" identifier << number_literal) | identifier)) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)(&in_t1->e_ident_magic_num + uVar47 * (int)pEVar22);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)(&in_t1->e_ident_magic_num + uVar47 * (int)pEVar22)" identifier = (cast_expression "(Elf32_Ehdr *)(&in_t1->e_ident_magic_num + uVar47 * (int)pEVar22)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&in_t1->e_ident_magic_num + uVar47 * (int)pEVar22)" ( (binary_expression "&in_t1->e_ident_magic_num + uVar47 * (int)pEVar22" (pointer_expression "&in_t1->e_ident_magic_num" & (field_expression "in_t1->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "uVar47 * (int)pEVar22" identifier * (cast_expression "(int)pEVar22" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);" (assignment_expression "lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29)" identifier = (binary_expression "(ulonglong)uVar47 * ZEXT48(pEVar29)" (cast_expression "(ulonglong)uVar47" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(pEVar29)" identifier (argument_list "(pEVar29)" ( identifier ))))) ;) (if_statement "if (pEVar32 < in_t1) {\n      uVar18 = pEVar32 < pEVar22 ^ 1;\n      pEVar20 = pEVar22;\n      if (uVar18 == 0) {\n        pEVar20 = (Elf32_Ehdr *)0x0;\n      }\n      uVar47 = (uVar47 - 1) - uVar18;\n      pEVar32 = (Elf32_Ehdr *)((int)pEVar32 + (-(int)pEVar20 - (int)pEVar22));\n      lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);\n    }" if (parenthesized_expression "(pEVar32 < in_t1)" ( (binary_expression "pEVar32 < in_t1" identifier < identifier) )) (compound_statement "{\n      uVar18 = pEVar32 < pEVar22 ^ 1;\n      pEVar20 = pEVar22;\n      if (uVar18 == 0) {\n        pEVar20 = (Elf32_Ehdr *)0x0;\n      }\n      uVar47 = (uVar47 - 1) - uVar18;\n      pEVar32 = (Elf32_Ehdr *)((int)pEVar32 + (-(int)pEVar20 - (int)pEVar22));\n      lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);\n    }" { (expression_statement "uVar18 = pEVar32 < pEVar22 ^ 1;" (assignment_expression "uVar18 = pEVar32 < pEVar22 ^ 1" identifier = (binary_expression "pEVar32 < pEVar22 ^ 1" (binary_expression "pEVar32 < pEVar22" identifier < identifier) ^ number_literal)) ;) (expression_statement "pEVar20 = pEVar22;" (assignment_expression "pEVar20 = pEVar22" identifier = identifier) ;) (if_statement "if (uVar18 == 0) {\n        pEVar20 = (Elf32_Ehdr *)0x0;\n      }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        pEVar20 = (Elf32_Ehdr *)0x0;\n      }" { (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 "uVar47 = (uVar47 - 1) - uVar18;" (assignment_expression "uVar47 = (uVar47 - 1) - uVar18" identifier = (binary_expression "(uVar47 - 1) - uVar18" (parenthesized_expression "(uVar47 - 1)" ( (binary_expression "uVar47 - 1" identifier - number_literal) )) - identifier)) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)((int)pEVar32 + (-(int)pEVar20 - (int)pEVar22));" (assignment_expression "pEVar32 = (Elf32_Ehdr *)((int)pEVar32 + (-(int)pEVar20 - (int)pEVar22))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar32 + (-(int)pEVar20 - (int)pEVar22))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar32 + (-(int)pEVar20 - (int)pEVar22))" ( (binary_expression "(int)pEVar32 + (-(int)pEVar20 - (int)pEVar22)" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar20 - (int)pEVar22)" ( (binary_expression "-(int)pEVar20 - (int)pEVar22" (unary_expression "-(int)pEVar20" - (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier)) - (cast_expression "(int)pEVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29);" (assignment_expression "lVar2 = (ulonglong)uVar47 * ZEXT48(pEVar29)" identifier = (binary_expression "(ulonglong)uVar47 * ZEXT48(pEVar29)" (cast_expression "(ulonglong)uVar47" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(pEVar29)" identifier (argument_list "(pEVar29)" ( identifier ))))) ;) })) (expression_statement "pEVar29 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);" (assignment_expression "pEVar29 = (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 "pEVar20 = (Elf32_Ehdr *)lVar2;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)lVar2" identifier = (cast_expression "(Elf32_Ehdr *)lVar2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)(&pEVar29->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)(&pEVar29->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num)" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar29->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar29->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num)" ( (binary_expression "&pEVar29->e_ident_magic_num + (int)&pEVar32->e_ident_magic_num" (pointer_expression "&pEVar29->e_ident_magic_num" & (field_expression "pEVar29->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)&pEVar32->e_ident_magic_num" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar32->e_ident_magic_num" & (field_expression "pEVar32->e_ident_magic_num" identifier -> field_identifier)))) )))) ;) (expression_statement "uVar18 = uVar47;" (assignment_expression "uVar18 = uVar47" identifier = identifier) ;) (if_statement "if (((pEVar32 < pEVar29) && (uVar18 = uVar47 - 1, pEVar22 <= pEVar32)) &&\n       ((pEVar22 < pEVar32 || (in_t1 <= pEVar20)))) {\n      uVar18 = uVar47 - 2;\n    }" if (parenthesized_expression "(((pEVar32 < pEVar29) && (uVar18 = uVar47 - 1, pEVar22 <= pEVar32)) &&\n       ((pEVar22 < pEVar32 || (in_t1 <= pEVar20))))" ( (binary_expression "((pEVar32 < pEVar29) && (uVar18 = uVar47 - 1, pEVar22 <= pEVar32)) &&\n       ((pEVar22 < pEVar32 || (in_t1 <= pEVar20)))" (parenthesized_expression "((pEVar32 < pEVar29) && (uVar18 = uVar47 - 1, pEVar22 <= pEVar32))" ( (binary_expression "(pEVar32 < pEVar29) && (uVar18 = uVar47 - 1, pEVar22 <= pEVar32)" (parenthesized_expression "(pEVar32 < pEVar29)" ( (binary_expression "pEVar32 < pEVar29" identifier < identifier) )) && (parenthesized_expression "(uVar18 = uVar47 - 1, pEVar22 <= pEVar32)" ( (comma_expression "uVar18 = uVar47 - 1, pEVar22 <= pEVar32" (assignment_expression "uVar18 = uVar47 - 1" identifier = (binary_expression "uVar47 - 1" identifier - number_literal)) , (binary_expression "pEVar22 <= pEVar32" identifier <= identifier)) ))) )) && (parenthesized_expression "((pEVar22 < pEVar32 || (in_t1 <= pEVar20)))" ( (parenthesized_expression "(pEVar22 < pEVar32 || (in_t1 <= pEVar20))" ( (binary_expression "pEVar22 < pEVar32 || (in_t1 <= pEVar20)" (binary_expression "pEVar22 < pEVar32" identifier < identifier) || (parenthesized_expression "(in_t1 <= pEVar20)" ( (binary_expression "in_t1 <= pEVar20" identifier <= identifier) ))) )) ))) )) (compound_statement "{\n      uVar18 = uVar47 - 2;\n    }" { (expression_statement "uVar18 = uVar47 - 2;" (assignment_expression "uVar18 = uVar47 - 2" identifier = (binary_expression "uVar47 - 2" identifier - number_literal)) ;) })) (expression_statement "*(uint *)(puVar39 + -0x44) = uVar18;" (assignment_expression "*(uint *)(puVar39 + -0x44) = uVar18" (pointer_expression "*(uint *)(puVar39 + -0x44)" * (cast_expression "(uint *)(puVar39 + -0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x44)" ( (binary_expression "puVar39 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 4);" (assignment_expression "pEVar29 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar39 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar39 + -0x5c) + 4" (pointer_expression "*(int *)(puVar39 + -0x5c)" * (cast_expression "(int *)(puVar39 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x5c)" ( (binary_expression "puVar39 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar32 = pEVar29;" (assignment_expression "pEVar32 = pEVar29" identifier = identifier) ;) (if_statement "if ((int)pEVar29 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar29;\n    }" if (parenthesized_expression "((int)pEVar29 < 0)" ( (binary_expression "(int)pEVar29 < 0" (cast_expression "(int)pEVar29" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar29;\n    }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)-(int)pEVar29;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)-(int)pEVar29" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar29" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar29" - (cast_expression "(int)pEVar29" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "pEVar22 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 8);" (assignment_expression "pEVar22 = *(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar39 + -0x5c) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar39 + -0x5c) + 8)" ( (binary_expression "*(int *)(puVar39 + -0x5c) + 8" (pointer_expression "*(int *)(puVar39 + -0x5c)" * (cast_expression "(int *)(puVar39 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x5c)" ( (binary_expression "puVar39 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((int)pEVar32 <= (int)pEVar34) {\n      if (pEVar29 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar39 + -100) = pEVar22;\n        *(uint *)(puVar39 + -0x70) = *(int *)(puVar39 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar39 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);\n      *(undefined4 *)(*(int *)(puVar39 + -0x54) + 4) = 0;\n      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00031764;\n      pcVar43 = *(code **)(puVar37 + -0x7a28);\nLAB_00031708:\n      (*pcVar43)();\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      goto LAB_00031764;\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 (pEVar29 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar39 + -100) = pEVar22;\n        *(uint *)(puVar39 + -0x70) = *(int *)(puVar39 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar39 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);\n      *(undefined4 *)(*(int *)(puVar39 + -0x54) + 4) = 0;\n      if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00031764;\n      pcVar43 = *(code **)(puVar37 + -0x7a28);\nLAB_00031708:\n      (*pcVar43)();\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      goto LAB_00031764;\n    }" { (if_statement "if (pEVar29 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar39 + -100) = pEVar22;\n        *(uint *)(puVar39 + -0x70) = *(int *)(puVar39 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar39 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }" if (parenthesized_expression "(pEVar29 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar29 != (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 **)(puVar39 + -100) = pEVar22;\n        *(uint *)(puVar39 + -0x70) = *(int *)(puVar39 + -0x50) + 4U;\n        pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar39 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }" { (expression_statement "*(Elf32_Ehdr **)(puVar39 + -100) = pEVar22;" (assignment_expression "*(Elf32_Ehdr **)(puVar39 + -100) = pEVar22" (pointer_expression "*(Elf32_Ehdr **)(puVar39 + -100)" * (cast_expression "(Elf32_Ehdr **)(puVar39 + -100)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -100)" ( (binary_expression "puVar39 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar39 + -0x70) = *(int *)(puVar39 + -0x50) + 4U;" (assignment_expression "*(uint *)(puVar39 + -0x70) = *(int *)(puVar39 + -0x50) + 4U" (pointer_expression "*(uint *)(puVar39 + -0x70)" * (cast_expression "(uint *)(puVar39 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x70)" ( (binary_expression "puVar39 + -0x70" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar39 + -0x50) + 4U" (pointer_expression "*(int *)(puVar39 + -0x50)" * (cast_expression "(int *)(puVar39 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar39 + -0x50) + 4U < 0x7f01);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(uint)(*(int *)(puVar39 + -0x50) + 4U < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(*(int *)(puVar39 + -0x50) + 4U < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(int *)(puVar39 + -0x50) + 4U < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar39 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar39 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar39 + -0x50) + 4U" (pointer_expression "*(int *)(puVar39 + -0x50)" * (cast_expression "(int *)(puVar39 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) ))))) ;) (goto_statement "goto LAB_000317f8;" goto statement_identifier ;) })) (labeled_statement "LAB_000316f4:\n      ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);" statement_identifier : (expression_statement "ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);" (assignment_expression "ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40)" identifier = (pointer_expression "*(tmp_reentrant_t **)(puVar39 + -0x40)" * (cast_expression "(tmp_reentrant_t **)(puVar39 + -0x40)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x40)" ( (binary_expression "puVar39 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(*(int *)(puVar39 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar39 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar39 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar39 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar39 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar39 + -0x54) + 4" (pointer_expression "*(int *)(puVar39 + -0x54)" * (cast_expression "(int *)(puVar39 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (if_statement "if (ptVar16 == (tmp_reentrant_t *)0x0) goto LAB_00031764;" 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_00031764;" goto statement_identifier ;)) (expression_statement "pcVar43 = *(code **)(puVar37 + -0x7a28);" (assignment_expression "pcVar43 = *(code **)(puVar37 + -0x7a28)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7a28)" * (cast_expression "(code **)(puVar37 + -0x7a28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7a28)" ( (binary_expression "puVar37 + -0x7a28" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031708:\n      (*pcVar43)();" statement_identifier : (expression_statement "(*pcVar43)();" (call_expression "(*pcVar43)()" (parenthesized_expression "(*pcVar43)" ( (pointer_expression "*pcVar43" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00031764;" goto statement_identifier ;) })) (expression_statement "uVar18 = *(int *)(puVar39 + -0x50) + 4;" (assignment_expression "uVar18 = *(int *)(puVar39 + -0x50) + 4" identifier = (binary_expression "*(int *)(puVar39 + -0x50) + 4" (pointer_expression "*(int *)(puVar39 + -0x50)" * (cast_expression "(int *)(puVar39 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -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 *)(puVar39 + -0x70) = uVar18;" (assignment_expression "*(uint *)(puVar39 + -0x70) = uVar18" (pointer_expression "*(uint *)(puVar39 + -0x70)" * (cast_expression "(uint *)(puVar39 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x70)" ( (binary_expression "puVar39 + -0x70" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      pcVar43 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar39 + -0x60) = pEVar32;\n      pmVar6 = (mp_ptr)(*pcVar43)(puVar39 + -0x40,uVar18);\n      pEVar32 = *(Elf32_Ehdr **)(puVar39 + -0x60);\n      *(mp_ptr *)(puVar39 + -100) = pmVar6;\n    }\n    else {\n      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n      pmVar6 = (mp_ptr)(puVar3 + iVar14 + 0x18);\n      *(mp_ptr *)(puVar39 + -100) = pmVar6;\n      puVar3 = puVar3 + iVar14;\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      pcVar43 = *(code **)(puVar37 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar39 + -0x60) = pEVar32;\n      pmVar6 = (mp_ptr)(*pcVar43)(puVar39 + -0x40,uVar18);\n      pEVar32 = *(Elf32_Ehdr **)(puVar39 + -0x60);\n      *(mp_ptr *)(puVar39 + -100) = pmVar6;\n    }" { (expression_statement "pcVar43 = *(code **)(puVar37 + -0x7d50);" (assignment_expression "pcVar43 = *(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 **)(puVar39 + -0x60) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar39 + -0x60) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar39 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar39 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x60)" ( (binary_expression "puVar39 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "pmVar6 = (mp_ptr)(*pcVar43)(puVar39 + -0x40,uVar18);" (assignment_expression "pmVar6 = (mp_ptr)(*pcVar43)(puVar39 + -0x40,uVar18)" identifier = (call_expression "(mp_ptr)(*pcVar43)(puVar39 + -0x40,uVar18)" (call_expression "(mp_ptr)(*pcVar43)" (parenthesized_expression "(mp_ptr)" ( identifier )) (argument_list "(*pcVar43)" ( (pointer_expression "*pcVar43" * identifier) ))) (argument_list "(puVar39 + -0x40,uVar18)" ( (binary_expression "puVar39 + -0x40" identifier + number_literal) , identifier )))) ;) (expression_statement "pEVar32 = *(Elf32_Ehdr **)(puVar39 + -0x60);" (assignment_expression "pEVar32 = *(Elf32_Ehdr **)(puVar39 + -0x60)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar39 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar39 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x60)" ( (binary_expression "puVar39 + -0x60" identifier + number_literal) ))))) ;) (expression_statement "*(mp_ptr *)(puVar39 + -100) = pmVar6;" (assignment_expression "*(mp_ptr *)(puVar39 + -100) = pmVar6" (pointer_expression "*(mp_ptr *)(puVar39 + -100)" * (cast_expression "(mp_ptr *)(puVar39 + -100)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -100)" ( (binary_expression "puVar39 + -100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n      pmVar6 = (mp_ptr)(puVar3 + iVar14 + 0x18);\n      *(mp_ptr *)(puVar39 + -100) = pmVar6;\n      puVar3 = puVar3 + iVar14;\n    }" else (compound_statement "{\n      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);\n      pmVar6 = (mp_ptr)(puVar3 + iVar14 + 0x18);\n      *(mp_ptr *)(puVar39 + -100) = pmVar6;\n      puVar3 = puVar3 + iVar14;\n    }" { (expression_statement "iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar14 = -(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar39 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar39 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar39 + -0x50)" * (cast_expression "(int *)(puVar39 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "pmVar6 = (mp_ptr)(puVar3 + iVar14 + 0x18);" (assignment_expression "pmVar6 = (mp_ptr)(puVar3 + iVar14 + 0x18)" identifier = (call_expression "(mp_ptr)(puVar3 + iVar14 + 0x18)" (parenthesized_expression "(mp_ptr)" ( identifier )) (argument_list "(puVar3 + iVar14 + 0x18)" ( (binary_expression "puVar3 + iVar14 + 0x18" (binary_expression "puVar3 + iVar14" identifier + identifier) + number_literal) )))) ;) (expression_statement "*(mp_ptr *)(puVar39 + -100) = pmVar6;" (assignment_expression "*(mp_ptr *)(puVar39 + -100) = pmVar6" (pointer_expression "*(mp_ptr *)(puVar39 + -100)" * (cast_expression "(mp_ptr *)(puVar39 + -100)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -100)" ( (binary_expression "puVar39 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3 = puVar3 + iVar14;" (assignment_expression "puVar3 = puVar3 + iVar14" identifier = (binary_expression "puVar3 + iVar14" identifier + identifier)) ;) }))) (expression_statement "pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);" (assignment_expression "pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c)" identifier = (pointer_expression "*(mp_srcptr *)(puVar39 + -0x4c)" * (cast_expression "(mp_srcptr *)(puVar39 + -0x4c)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x4c)" ( (binary_expression "puVar39 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x14) = puVar39 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x14) = puVar39 + -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 "puVar39 + -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 = pEVar22;" (assignment_expression "pEVar20 = pEVar22" identifier = identifier) ;) (expression_statement "reduce(pmVar6,(mp_srcptr)pEVar22,(mp_size_t)pEVar32,pmVar27,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14));" (call_expression "reduce(pmVar6,(mp_srcptr)pEVar22,(mp_size_t)pEVar32,pmVar27,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14))" identifier (argument_list "(pmVar6,(mp_srcptr)pEVar22,(mp_size_t)pEVar32,pmVar27,*(mp_size_t *)(puVar3 + 0x10),\n           *(gmp_pi1_t **)(puVar3 + 0x14))" ( identifier , (cast_expression "(mp_srcptr)pEVar22" ( (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 "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar32 = pEVar34;" (assignment_expression "pEVar32 = pEVar34" identifier = identifier) ;) (if_statement "if (*(int *)((int)pmVar6 + *(int *)(puVar39 + -0x50)) == 0) {\n      iVar14 = (int)pmVar6 + *(int *)(puVar39 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar7 = (int *)(iVar14 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar14 = iVar14 + -4;\n      } while (*piVar7 == 0);\n    }" if (parenthesized_expression "(*(int *)((int)pmVar6 + *(int *)(puVar39 + -0x50)) == 0)" ( (binary_expression "*(int *)((int)pmVar6 + *(int *)(puVar39 + -0x50)) == 0" (pointer_expression "*(int *)((int)pmVar6 + *(int *)(puVar39 + -0x50))" * (cast_expression "(int *)((int)pmVar6 + *(int *)(puVar39 + -0x50))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar6 + *(int *)(puVar39 + -0x50))" ( (binary_expression "(int)pmVar6 + *(int *)(puVar39 + -0x50)" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(puVar39 + -0x50)" * (cast_expression "(int *)(puVar39 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -0x50" identifier + number_literal) ))))) )))) == number_literal) )) (compound_statement "{\n      iVar14 = (int)pmVar6 + *(int *)(puVar39 + -0x70);\n      do {\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar7 = (int *)(iVar14 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar14 = iVar14 + -4;\n      } while (*piVar7 == 0);\n    }" { (expression_statement "iVar14 = (int)pmVar6 + *(int *)(puVar39 + -0x70);" (assignment_expression "iVar14 = (int)pmVar6 + *(int *)(puVar39 + -0x70)" identifier = (binary_expression "(int)pmVar6 + *(int *)(puVar39 + -0x70)" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(puVar39 + -0x70)" * (cast_expression "(int *)(puVar39 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x70)" ( (binary_expression "puVar39 + -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_000316f4;\n        piVar7 = (int *)(iVar14 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar14 = iVar14 + -4;\n      } while (*piVar7 == 0);" do (compound_statement "{\n        pEVar32 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n        if (pEVar32 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar7 = (int *)(iVar14 + -8);\n        pEVar20 = (Elf32_Ehdr *)((int)pEVar34 << 3);\n        iVar14 = iVar14 + -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_000316f4;" 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_000316f4;" goto statement_identifier ;)) (expression_statement "piVar7 = (int *)(iVar14 + -8);" (assignment_expression "piVar7 = (int *)(iVar14 + -8)" identifier = (cast_expression "(int *)(iVar14 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + -8)" ( (binary_expression "iVar14 + -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 "iVar14 = iVar14 + -4;" (assignment_expression "iVar14 = iVar14 + -4" identifier = (binary_expression "iVar14 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar7 == 0)" ( (binary_expression "*piVar7 == 0" (pointer_expression "*piVar7" * identifier) == number_literal) )) ;) })) (labeled_statement "LAB_000317f8:\n    if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar14 = -((int)pEVar34 * 8 + 8);\n      pEVar22 = (Elf32_Ehdr *)(puVar3 + iVar14 + 0x18);\n      puVar3 = puVar3 + iVar14;\n    }\n    else {\n      pEVar22 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n    }" statement_identifier : (if_statement "if ((int)pEVar34 * 8 + 4U < 0x7f01) {\n      iVar14 = -((int)pEVar34 * 8 + 8);\n      pEVar22 = (Elf32_Ehdr *)(puVar3 + iVar14 + 0x18);\n      puVar3 = puVar3 + iVar14;\n    }\n    else {\n      pEVar22 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\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      iVar14 = -((int)pEVar34 * 8 + 8);\n      pEVar22 = (Elf32_Ehdr *)(puVar3 + iVar14 + 0x18);\n      puVar3 = puVar3 + iVar14;\n    }" { (expression_statement "iVar14 = -((int)pEVar34 * 8 + 8);" (assignment_expression "iVar14 = -((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 "pEVar22 = (Elf32_Ehdr *)(puVar3 + iVar14 + 0x18);" (assignment_expression "pEVar22 = (Elf32_Ehdr *)(puVar3 + iVar14 + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar14 + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar14 + 0x18)" ( (binary_expression "puVar3 + iVar14 + 0x18" (binary_expression "puVar3 + iVar14" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar3 = puVar3 + iVar14;" (assignment_expression "puVar3 = puVar3 + iVar14" identifier = (binary_expression "puVar3 + iVar14" identifier + identifier)) ;) }) (else_clause "else {\n      pEVar22 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n    }" else (compound_statement "{\n      pEVar22 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n    }" { (expression_statement "pEVar22 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);" (assignment_expression "pEVar22 = (Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar37 + -0x7d50))(puVar39 + -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 "(puVar39 + -0x40)" ( (binary_expression "puVar39 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) })))) (if_statement "if (pEVar30 == (Elf32_Ehdr *)0x0) {\n      dinv = (gmp_pi1_t *)\n             (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40,*(undefined4 *)(puVar39 + -0x70));\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n    }\n    else {\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar39 + -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 **)(puVar37 + -0x7d50))(puVar39 + -0x40,*(undefined4 *)(puVar39 + -0x70));\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n    }" { (expression_statement "dinv = (gmp_pi1_t *)\n             (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40,*(undefined4 *)(puVar39 + -0x70));" (assignment_expression "dinv = (gmp_pi1_t *)\n             (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40,*(undefined4 *)(puVar39 + -0x70))" identifier = (cast_expression "(gmp_pi1_t *)\n             (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40,*(undefined4 *)(puVar39 + -0x70))" ( (type_descriptor "gmp_pi1_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40,*(undefined4 *)(puVar39 + -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 "(puVar39 + -0x40,*(undefined4 *)(puVar39 + -0x70))" ( (binary_expression "puVar39 + -0x40" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar39 + -0x70)" * (cast_expression "(undefined4 *)(puVar39 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x70)" ( (binary_expression "puVar39 + -0x70" identifier + number_literal) )))) ))))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8);\n    }" else (compound_statement "{\n      dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8);\n    }" { (expression_statement "dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8) + 0x18);" (assignment_expression "dinv = (gmp_pi1_t *)(puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8) + 0x18)" identifier = (cast_expression "(gmp_pi1_t *)(puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (type_descriptor "gmp_pi1_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (binary_expression "puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8) + 0x18" (binary_expression "puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar39 + -0x70) + 7U" (pointer_expression "*(int *)(puVar39 + -0x70)" * (cast_expression "(int *)(puVar39 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x70)" ( (binary_expression "puVar39 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar3 = puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8);" (assignment_expression "puVar3 = puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8)" identifier = (binary_expression "puVar3 + -(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar39 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar39 + -0x70) + 7U" (pointer_expression "*(int *)(puVar39 + -0x70)" * (cast_expression "(int *)(puVar39 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x70)" ( (binary_expression "puVar39 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) ))))) ;) }))) (if_statement "if (*(int *)(puVar39 + -0x50) + 8U < 0x7f01) {\n      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar39 + -0x74) = puVar3 + iVar14 + 0x18;\n      puVar3 = puVar3 + iVar14;\n    }\n    else {\n      uVar44 = (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      *(undefined4 *)(puVar39 + -0x74) = uVar44;\n    }" if (parenthesized_expression "(*(int *)(puVar39 + -0x50) + 8U < 0x7f01)" ( (binary_expression "*(int *)(puVar39 + -0x50) + 8U < 0x7f01" (binary_expression "*(int *)(puVar39 + -0x50) + 8U" (pointer_expression "*(int *)(puVar39 + -0x50)" * (cast_expression "(int *)(puVar39 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n      iVar14 = -(*(int *)(puVar39 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar39 + -0x74) = puVar3 + iVar14 + 0x18;\n      puVar3 = puVar3 + iVar14;\n    }" { (expression_statement "iVar14 = -(*(int *)(puVar39 + -0x50) + 0xfU & 0xfffffff8);" (assignment_expression "iVar14 = -(*(int *)(puVar39 + -0x50) + 0xfU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar39 + -0x50) + 0xfU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar39 + -0x50) + 0xfU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar39 + -0x50) + 0xfU & 0xfffffff8" (binary_expression "*(int *)(puVar39 + -0x50) + 0xfU" (pointer_expression "*(int *)(puVar39 + -0x50)" * (cast_expression "(int *)(puVar39 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar39 + -0x74) = puVar3 + iVar14 + 0x18;" (assignment_expression "*(undefined1 **)(puVar39 + -0x74) = puVar3 + iVar14 + 0x18" (pointer_expression "*(undefined1 **)(puVar39 + -0x74)" * (cast_expression "(undefined1 **)(puVar39 + -0x74)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x74)" ( (binary_expression "puVar39 + -0x74" identifier + number_literal) )))) = (binary_expression "puVar3 + iVar14 + 0x18" (binary_expression "puVar3 + iVar14" identifier + identifier) + number_literal)) ;) (expression_statement "puVar3 = puVar3 + iVar14;" (assignment_expression "puVar3 = puVar3 + iVar14" identifier = (binary_expression "puVar3 + iVar14" identifier + identifier)) ;) }) (else_clause "else {\n      uVar44 = (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      *(undefined4 *)(puVar39 + -0x74) = uVar44;\n    }" else (compound_statement "{\n      uVar44 = (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      *(undefined4 *)(puVar39 + -0x74) = uVar44;\n    }" { (expression_statement "uVar44 = (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40);" (assignment_expression "uVar44 = (**(code **)(puVar37 + -0x7d50))(puVar39 + -0x40)" identifier = (call_expression "(**(code **)(puVar37 + -0x7d50))(puVar39 + -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 "(puVar39 + -0x40)" ( (binary_expression "puVar39 + -0x40" identifier + number_literal) )))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar39 + -0x74) = uVar44;" (assignment_expression "*(undefined4 *)(puVar39 + -0x74) = uVar44" (pointer_expression "*(undefined4 *)(puVar39 + -0x74)" * (cast_expression "(undefined4 *)(puVar39 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x74)" ( (binary_expression "puVar39 + -0x74" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar4 = *(undefined4 **)(puVar39 + -100);" (assignment_expression "puVar4 = *(undefined4 **)(puVar39 + -100)" identifier = (pointer_expression "*(undefined4 **)(puVar39 + -100)" * (cast_expression "(undefined4 **)(puVar39 + -100)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -100)" ( (binary_expression "puVar39 + -100" identifier + number_literal) ))))) ;) (expression_statement "pwVar9 = (word *)((int)&pEVar32[-1].e_shstrndx + 1);" (assignment_expression "pwVar9 = (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 "pwVar8 = pwVar9;" (assignment_expression "pwVar8 = pwVar9" identifier = identifier) ;) (if_statement "if (pwVar9 != (word *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar32 * 4 + -5);\n    }" if (parenthesized_expression "(pwVar9 != (word *)0x0)" ( (binary_expression "pwVar9 != (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        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar8 != (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        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar20 = (Elf32_Ehdr *)*puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n      } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)&pEVar30->e_ident_magic_num = pEVar20;\n        pwVar8 = (word *)((int)pwVar8 + -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 "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 *)*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 "(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 *)(((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 "iVar14 = 0x1f - (int)tp;" (assignment_expression "iVar14 = 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 (iVar14 == 0) {\n      if (pEVar34 == pEVar32) {\n        pcVar13 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar34 * 4 + -1;\n        iVar14 = *(int *)(puVar39 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar14 + -4);\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          if (*(Elf32_Ehdr **)(pcVar13 + -4) != pEVar20) {\n            pcVar43 = *(code **)(puVar37 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20) goto LAB_000318d0;\n            goto LAB_00031d88;\n          }\n          pcVar13 = pcVar13 + -4;\n          iVar14 = iVar14 + -4;\n        } while (pwVar9 != (word *)0xffffffff);\n        pcVar43 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031d88:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar43)(dinv,dinv,*(undefined4 *)(puVar39 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n      }\n    }\n    else {\n      puVar41 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n      *(mp_srcptr *)(puVar39 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar39 + -0x84) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50);\n      *(undefined1 **)(puVar39 + -0x7c) = puVar39 + -0x44;\n      *(int *)(puVar39 + -0x80) = *(int *)(puVar37 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar39 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(puVar37 + -0x7cac))(pEVar22,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        if (an < (int)pEVar34) {\n          pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar22->e_ident_magic_num;\n            uVar24._1_1_ = pEVar22->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar22->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar22->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar9 != (word *)0x0) {\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n          pcVar43 = *(code **)(puVar39 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n          (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          uVar44._0_1_ = pEVar22->e_ident_magic_num;\n          uVar44._1_1_ = pEVar22->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar22->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar22->e_ident_magic_str[2];\n          if (puVar41 == (undefined1 *)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            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }\n          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar34;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar39 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar43)(pEVar22,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          if (an < (int)pEVar34) {\n            pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n            pcVar43 = *(code **)(puVar39 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n            (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n            puVar37 = *(undefined **)(puVar39 + -0x90);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;\n            pwVar9 = (word *)puVar41;\n            pEVar29 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar22;\n            if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n          }\n        }\n        iVar14 = iVar14 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar14 != 0);\n      mp = *(mp_srcptr *)(puVar39 + 8);\n      pEVar32 = (Elf32_Ehdr *)puVar41;\n    }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      if (pEVar34 == pEVar32) {\n        pcVar13 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar34 * 4 + -1;\n        iVar14 = *(int *)(puVar39 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar14 + -4);\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          if (*(Elf32_Ehdr **)(pcVar13 + -4) != pEVar20) {\n            pcVar43 = *(code **)(puVar37 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20) goto LAB_000318d0;\n            goto LAB_00031d88;\n          }\n          pcVar13 = pcVar13 + -4;\n          iVar14 = iVar14 + -4;\n        } while (pwVar9 != (word *)0xffffffff);\n        pcVar43 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031d88:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar43)(dinv,dinv,*(undefined4 *)(puVar39 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n      }\n    }" { (if_statement "if (pEVar34 == pEVar32) {\n        pcVar13 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar34 * 4 + -1;\n        iVar14 = *(int *)(puVar39 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar14 + -4);\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          if (*(Elf32_Ehdr **)(pcVar13 + -4) != pEVar20) {\n            pcVar43 = *(code **)(puVar37 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20) goto LAB_000318d0;\n            goto LAB_00031d88;\n          }\n          pcVar13 = pcVar13 + -4;\n          iVar14 = iVar14 + -4;\n        } while (pwVar9 != (word *)0xffffffff);\n        pcVar43 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031d88:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar43)(dinv,dinv,*(undefined4 *)(puVar39 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n      }" if (parenthesized_expression "(pEVar34 == pEVar32)" ( (binary_expression "pEVar34 == pEVar32" identifier == identifier) )) (compound_statement "{\n        pcVar13 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar34 * 4 + -1;\n        iVar14 = *(int *)(puVar39 + -0x4c) + (int)pEVar34 * 4;\n        do {\n          pEVar20 = *(Elf32_Ehdr **)(iVar14 + -4);\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          if (*(Elf32_Ehdr **)(pcVar13 + -4) != pEVar20) {\n            pcVar43 = *(code **)(puVar37 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20) goto LAB_000318d0;\n            goto LAB_00031d88;\n          }\n          pcVar13 = pcVar13 + -4;\n          iVar14 = iVar14 + -4;\n        } while (pwVar9 != (word *)0xffffffff);\n        pcVar43 = *(code **)(puVar37 + -0x7b2c);\nLAB_00031d88:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (*pcVar43)(dinv,dinv,*(undefined4 *)(puVar39 + -0x4c),pEVar32);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n      }" { (expression_statement "pcVar13 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar34 * 4 + -1;" (assignment_expression "pcVar13 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar34 * 4 + -1" identifier = (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar34 * 4 + -1" (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar34 * 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)pEVar34 * 4" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "iVar14 = *(int *)(puVar39 + -0x4c) + (int)pEVar34 * 4;" (assignment_expression "iVar14 = *(int *)(puVar39 + -0x4c) + (int)pEVar34 * 4" identifier = (binary_expression "*(int *)(puVar39 + -0x4c) + (int)pEVar34 * 4" (pointer_expression "*(int *)(puVar39 + -0x4c)" * (cast_expression "(int *)(puVar39 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x4c)" ( (binary_expression "puVar39 + -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 **)(iVar14 + -4);\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          if (*(Elf32_Ehdr **)(pcVar13 + -4) != pEVar20) {\n            pcVar43 = *(code **)(puVar37 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20) goto LAB_000318d0;\n            goto LAB_00031d88;\n          }\n          pcVar13 = pcVar13 + -4;\n          iVar14 = iVar14 + -4;\n        } while (pwVar9 != (word *)0xffffffff);" do (compound_statement "{\n          pEVar20 = *(Elf32_Ehdr **)(iVar14 + -4);\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          if (*(Elf32_Ehdr **)(pcVar13 + -4) != pEVar20) {\n            pcVar43 = *(code **)(puVar37 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20) goto LAB_000318d0;\n            goto LAB_00031d88;\n          }\n          pcVar13 = pcVar13 + -4;\n          iVar14 = iVar14 + -4;\n        }" { (expression_statement "pEVar20 = *(Elf32_Ehdr **)(iVar14 + -4);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(iVar14 + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(iVar14 + -4)" * (cast_expression "(Elf32_Ehdr **)(iVar14 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + -4)" ( (binary_expression "iVar14 + -4" identifier + number_literal) ))))) ;) (expression_statement "pwVar9 = (word *)((int)pwVar9 + -1);" (assignment_expression "pwVar9 = (word *)((int)pwVar9 + -1)" identifier = (cast_expression "(word *)((int)pwVar9 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar9 + -1)" ( (binary_expression "(int)pwVar9 + -1" (cast_expression "(int)pwVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(Elf32_Ehdr **)(pcVar13 + -4) != pEVar20) {\n            pcVar43 = *(code **)(puVar37 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20) goto LAB_000318d0;\n            goto LAB_00031d88;\n          }" if (parenthesized_expression "(*(Elf32_Ehdr **)(pcVar13 + -4) != pEVar20)" ( (binary_expression "*(Elf32_Ehdr **)(pcVar13 + -4) != pEVar20" (pointer_expression "*(Elf32_Ehdr **)(pcVar13 + -4)" * (cast_expression "(Elf32_Ehdr **)(pcVar13 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + -4)" ( (binary_expression "pcVar13 + -4" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n            pcVar43 = *(code **)(puVar37 + -0x7b2c);\n            if (*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20) goto LAB_000318d0;\n            goto LAB_00031d88;\n          }" { (expression_statement "pcVar43 = *(code **)(puVar37 + -0x7b2c);" (assignment_expression "pcVar43 = *(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 (*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20) goto LAB_000318d0;" if (parenthesized_expression "(*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20)" ( (binary_expression "*(Elf32_Ehdr **)(pcVar13 + -4) <= pEVar20" (pointer_expression "*(Elf32_Ehdr **)(pcVar13 + -4)" * (cast_expression "(Elf32_Ehdr **)(pcVar13 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + -4)" ( (binary_expression "pcVar13 + -4" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_000318d0;" goto statement_identifier ;)) (goto_statement "goto LAB_00031d88;" goto statement_identifier ;) })) (expression_statement "pcVar13 = pcVar13 + -4;" (assignment_expression "pcVar13 = pcVar13 + -4" identifier = (binary_expression "pcVar13 + -4" identifier + number_literal)) ;) (expression_statement "iVar14 = iVar14 + -4;" (assignment_expression "iVar14 = iVar14 + -4" identifier = (binary_expression "iVar14 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pwVar9 != (word *)0xffffffff)" ( (binary_expression "pwVar9 != (word *)0xffffffff" identifier != (cast_expression "(word *)0xffffffff" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar43 = *(code **)(puVar37 + -0x7b2c);" (assignment_expression "pcVar43 = *(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_00031d88:\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 "(*pcVar43)(dinv,dinv,*(undefined4 *)(puVar39 + -0x4c),pEVar32);" (call_expression "(*pcVar43)(dinv,dinv,*(undefined4 *)(puVar39 + -0x4c),pEVar32)" (parenthesized_expression "(*pcVar43)" ( (pointer_expression "*pcVar43" * identifier) )) (argument_list "(dinv,dinv,*(undefined4 *)(puVar39 + -0x4c),pEVar32)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(puVar39 + -0x4c)" * (cast_expression "(undefined4 *)(puVar39 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x4c)" ( (binary_expression "puVar39 + -0x4c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n      puVar41 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n      *(mp_srcptr *)(puVar39 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar39 + -0x84) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50);\n      *(undefined1 **)(puVar39 + -0x7c) = puVar39 + -0x44;\n      *(int *)(puVar39 + -0x80) = *(int *)(puVar37 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar39 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(puVar37 + -0x7cac))(pEVar22,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        if (an < (int)pEVar34) {\n          pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar22->e_ident_magic_num;\n            uVar24._1_1_ = pEVar22->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar22->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar22->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar9 != (word *)0x0) {\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n          pcVar43 = *(code **)(puVar39 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n          (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          uVar44._0_1_ = pEVar22->e_ident_magic_num;\n          uVar44._1_1_ = pEVar22->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar22->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar22->e_ident_magic_str[2];\n          if (puVar41 == (undefined1 *)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            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }\n          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar34;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar39 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar43)(pEVar22,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          if (an < (int)pEVar34) {\n            pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n            pcVar43 = *(code **)(puVar39 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n            (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n            puVar37 = *(undefined **)(puVar39 + -0x90);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;\n            pwVar9 = (word *)puVar41;\n            pEVar29 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar22;\n            if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n          }\n        }\n        iVar14 = iVar14 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar14 != 0);\n      mp = *(mp_srcptr *)(puVar39 + 8);\n      pEVar32 = (Elf32_Ehdr *)puVar41;\n    }" else (compound_statement "{\n      puVar41 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);\n      *(mp_srcptr *)(puVar39 + 8) = mp;\n      tp = (mp_ptr)(((int)mp << ((uint)tp & 0x1f)) << 1);\n      *(byte **)(puVar39 + -0x84) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50);\n      *(undefined1 **)(puVar39 + -0x7c) = puVar39 + -0x44;\n      *(int *)(puVar39 + -0x80) = *(int *)(puVar37 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar39 + -0x60) = 0x3fffffff;\n      do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(puVar37 + -0x7cac))(pEVar22,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        if (an < (int)pEVar34) {\n          pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar22->e_ident_magic_num;\n            uVar24._1_1_ = pEVar22->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar22->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar22->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar9 != (word *)0x0) {\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n          pcVar43 = *(code **)(puVar39 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n          (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          uVar44._0_1_ = pEVar22->e_ident_magic_num;\n          uVar44._1_1_ = pEVar22->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar22->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar22->e_ident_magic_str[2];\n          if (puVar41 == (undefined1 *)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            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }\n          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar34;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar39 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar43)(pEVar22,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          if (an < (int)pEVar34) {\n            pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n            pcVar43 = *(code **)(puVar39 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n            (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n            puVar37 = *(undefined **)(puVar39 + -0x90);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;\n            pwVar9 = (word *)puVar41;\n            pEVar29 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar22;\n            if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n          }\n        }\n        iVar14 = iVar14 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar14 != 0);\n      mp = *(mp_srcptr *)(puVar39 + 8);\n      pEVar32 = (Elf32_Ehdr *)puVar41;\n    }" { (expression_statement "puVar41 = (undefined1 *)((int)&pEVar34[-1].e_shstrndx + 1);" (assignment_expression "puVar41 = (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 "*(mp_srcptr *)(puVar39 + 8) = mp;" (assignment_expression "*(mp_srcptr *)(puVar39 + 8) = mp" (pointer_expression "*(mp_srcptr *)(puVar39 + 8)" * (cast_expression "(mp_srcptr *)(puVar39 + 8)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + 8)" ( (binary_expression "puVar39 + 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 **)(puVar39 + -0x84) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50);" (assignment_expression "*(byte **)(puVar39 + -0x84) =\n           &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)" (pointer_expression "*(byte **)(puVar39 + -0x84)" * (cast_expression "(byte **)(puVar39 + -0x84)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x84)" ( (binary_expression "puVar39 + -0x84" identifier + number_literal) )))) = (binary_expression "&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -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 *)(puVar39 + -0x50)" * (cast_expression "(int *)(puVar39 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -0x50" identifier + number_literal) )))))) ;) (expression_statement "*(undefined1 **)(puVar39 + -0x7c) = puVar39 + -0x44;" (assignment_expression "*(undefined1 **)(puVar39 + -0x7c) = puVar39 + -0x44" (pointer_expression "*(undefined1 **)(puVar39 + -0x7c)" * (cast_expression "(undefined1 **)(puVar39 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x7c)" ( (binary_expression "puVar39 + -0x7c" identifier + number_literal) )))) = (binary_expression "puVar39 + -0x44" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar39 + -0x80) = *(int *)(puVar37 + -0x7fcc) + 0xf30;" (assignment_expression "*(int *)(puVar39 + -0x80) = *(int *)(puVar37 + -0x7fcc) + 0xf30" (pointer_expression "*(int *)(puVar39 + -0x80)" * (cast_expression "(int *)(puVar39 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x80)" ( (binary_expression "puVar39 + -0x80" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar37 + -0x7fcc) + 0xf30" (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 *)(puVar39 + -0x60) = 0x3fffffff;" (assignment_expression "*(undefined4 *)(puVar39 + -0x60) = 0x3fffffff" (pointer_expression "*(undefined4 *)(puVar39 + -0x60)" * (cast_expression "(undefined4 *)(puVar39 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x60)" ( (binary_expression "puVar39 + -0x60" identifier + number_literal) )))) = number_literal) ;) (do_statement "do {\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(puVar37 + -0x7cac))(pEVar22,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        if (an < (int)pEVar34) {\n          pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar22->e_ident_magic_num;\n            uVar24._1_1_ = pEVar22->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar22->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar22->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar9 != (word *)0x0) {\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n          pcVar43 = *(code **)(puVar39 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n          (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          uVar44._0_1_ = pEVar22->e_ident_magic_num;\n          uVar44._1_1_ = pEVar22->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar22->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar22->e_ident_magic_str[2];\n          if (puVar41 == (undefined1 *)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            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }\n          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar34;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar39 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar43)(pEVar22,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          if (an < (int)pEVar34) {\n            pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n            pcVar43 = *(code **)(puVar39 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n            (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n            puVar37 = *(undefined **)(puVar39 + -0x90);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;\n            pwVar9 = (word *)puVar41;\n            pEVar29 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar22;\n            if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n          }\n        }\n        iVar14 = iVar14 + -1;\n        tp = (mp_ptr)((int)tp << 1);\n      } while (iVar14 != 0);" do (compound_statement "{\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(puVar37 + -0x7cac))(pEVar22,dinv,an);\n        an = an * 2 - (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        if (an < (int)pEVar34) {\n          pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar22->e_ident_magic_num;\n            uVar24._1_1_ = pEVar22->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar22->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar22->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar9 != (word *)0x0) {\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n          pcVar43 = *(code **)(puVar39 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n          (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          uVar44._0_1_ = pEVar22->e_ident_magic_num;\n          uVar44._1_1_ = pEVar22->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar22->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar22->e_ident_magic_str[2];\n          if (puVar41 == (undefined1 *)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            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }\n          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar34;\n        }\n        if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar39 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar43)(pEVar22,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          if (an < (int)pEVar34) {\n            pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n            pcVar43 = *(code **)(puVar39 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n            (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n            puVar37 = *(undefined **)(puVar39 + -0x90);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;\n            pwVar9 = (word *)puVar41;\n            pEVar29 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar22;\n            if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n          }\n        }\n        iVar14 = iVar14 + -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 **)(puVar37 + -0x7cac))(pEVar22,dinv,an);" (call_expression "(**(code **)(puVar37 + -0x7cac))(pEVar22,dinv,an)" (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 "(pEVar22,dinv,an)" ( identifier , identifier , identifier ))) ;) (expression_statement "an = an * 2 - (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0);" (assignment_expression "an = an * 2 - (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0)" identifier = (binary_expression "an * 2 - (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0)" (binary_expression "an * 2" identifier * number_literal) - (call_expression "(uint)(*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0)" ( (binary_expression "*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1)" * (cast_expression "(int *)(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1)" ( (binary_expression "pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4 + -1" (binary_expression "pEVar22->e_ident_magic_str +\n                                     (an * 2 + *(int *)(puVar39 + -0x60)) * 4" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(an * 2 + *(int *)(puVar39 + -0x60)) * 4" (parenthesized_expression "(an * 2 + *(int *)(puVar39 + -0x60))" ( (binary_expression "an * 2 + *(int *)(puVar39 + -0x60)" (binary_expression "an * 2" identifier * number_literal) + (pointer_expression "*(int *)(puVar39 + -0x60)" * (cast_expression "(int *)(puVar39 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x60)" ( (binary_expression "puVar39 + -0x60" identifier + number_literal) ))))) )) * number_literal)) + number_literal) )))) == number_literal) ))))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (an < (int)pEVar34) {\n          pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar22->e_ident_magic_num;\n            uVar24._1_1_ = pEVar22->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar22->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar22->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar9 != (word *)0x0) {\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n          pcVar43 = *(code **)(puVar39 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n          (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          uVar44._0_1_ = pEVar22->e_ident_magic_num;\n          uVar44._1_1_ = pEVar22->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar22->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar22->e_ident_magic_str[2];\n          if (puVar41 == (undefined1 *)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            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }\n          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar34;\n        }" if (parenthesized_expression "(an < (int)pEVar34)" ( (binary_expression "an < (int)pEVar34" identifier < (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n          if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n            uVar24._0_1_ = pEVar22->e_ident_magic_num;\n            uVar24._1_1_ = pEVar22->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar22->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar22->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar9 != (word *)0x0) {\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n        }" { (expression_statement "pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);" (assignment_expression "pwVar9 = (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_ = pEVar22->e_ident_magic_num;\n            uVar24._1_1_ = pEVar22->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar22->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar22->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar9 != (word *)0x0) {\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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_ = pEVar22->e_ident_magic_num;\n            uVar24._1_1_ = pEVar22->e_ident_magic_str[0];\n            uVar24._2_1_ = pEVar22->e_ident_magic_str[1];\n            uVar24._3_1_ = pEVar22->e_ident_magic_str[2];\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            if (pwVar9 != (word *)0x0) {\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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_ = pEVar22->e_ident_magic_num;" (assignment_expression "uVar24._0_1_ = pEVar22->e_ident_magic_num" (field_expression "uVar24._0_1_" identifier . field_identifier) = (field_expression "pEVar22->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar24._1_1_ = pEVar22->e_ident_magic_str[0];" (assignment_expression "uVar24._1_1_ = pEVar22->e_ident_magic_str[0]" (field_expression "uVar24._1_1_" identifier . field_identifier) = (subscript_expression "pEVar22->e_ident_magic_str[0]" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar24._2_1_ = pEVar22->e_ident_magic_str[1];" (assignment_expression "uVar24._2_1_ = pEVar22->e_ident_magic_str[1]" (field_expression "uVar24._2_1_" identifier . field_identifier) = (subscript_expression "pEVar22->e_ident_magic_str[1]" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar24._3_1_ = pEVar22->e_ident_magic_str[2];" (assignment_expression "uVar24._3_1_ = pEVar22->e_ident_magic_str[2]" (field_expression "uVar24._3_1_" identifier . field_identifier) = (subscript_expression "pEVar22->e_ident_magic_str[2]" (field_expression "pEVar22->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 (pwVar9 != (word *)0x0) {\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) *\n                        4 + -1);\n            }" if (parenthesized_expression "(pwVar9 != (word *)0x0)" ( (binary_expression "pwVar9 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (word *)0x0);\n              pEVar30 = (Elf32_Ehdr *)\n                        (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) *\n                        4 + -1);\n            }" { (expression_statement "pbVar10 = &pEVar22->e_ident_class;" (assignment_expression "pbVar10 = &pEVar22->e_ident_class" identifier = (pointer_expression "&pEVar22->e_ident_class" & (field_expression "pEVar22->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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (byte *)pEVar20;\n              } while (pwVar9 != (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 *)(pbVar10 + 4);\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                uVar24 = *(undefined4 *)pbVar10;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                pbVar10 = (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 *)(pbVar10 + 4);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(pbVar10 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar10 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 4)" ( (binary_expression "pbVar10 + 4" identifier + number_literal) )))) ;) (expression_statement "pwVar9 = (word *)((int)pwVar9 + -1);" (assignment_expression "pwVar9 = (word *)((int)pwVar9 + -1)" identifier = (cast_expression "(word *)((int)pwVar9 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar9 + -1)" ( (binary_expression "(int)pwVar9 + -1" (cast_expression "(int)pwVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar24 = *(undefined4 *)pbVar10;" (assignment_expression "uVar24 = *(undefined4 *)pbVar10" identifier = (pointer_expression "*(undefined4 *)pbVar10" * (cast_expression "(undefined4 *)pbVar10" ( (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 "pbVar10 = (byte *)pEVar20;" (assignment_expression "pbVar10 = (byte *)pEVar20" identifier = (cast_expression "(byte *)pEVar20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(pwVar9 != (word *)0x0)" ( (binary_expression "pwVar9 != (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 *)(puVar39 + -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 *)(puVar39 + -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 *)(puVar39 + -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 *)(puVar39 + -0x60)) *\n                        4 + -1)" ( (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) *\n                        4 + -1" (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                        (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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 *)(puVar39 + -0x60)) *\n                        4" (cast_expression "(int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60))" ( (binary_expression "&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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 *)(puVar39 + -0x60)" * (cast_expression "(int *)(puVar39 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x60)" ( (binary_expression "puVar39 + -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 "pcVar43 = *(code **)(puVar37 + -0x7d8c);" (assignment_expression "pcVar43 = *(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          uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n          pcVar43 = *(code **)(puVar39 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n          (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          uVar44._0_1_ = pEVar22->e_ident_magic_num;\n          uVar44._1_1_ = pEVar22->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar22->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar22->e_ident_magic_str[2];\n          if (puVar41 == (undefined1 *)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            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }\n          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar34;\n        }" else (compound_statement "{\n          uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n          pcVar43 = *(code **)(puVar39 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n          (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          uVar44._0_1_ = pEVar22->e_ident_magic_num;\n          uVar44._1_1_ = pEVar22->e_ident_magic_str[0];\n          uVar44._2_1_ = pEVar22->e_ident_magic_str[1];\n          uVar44._3_1_ = pEVar22->e_ident_magic_str[2];\n          if (puVar41 == (undefined1 *)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            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }\n          pcVar43 = *(code **)(puVar37 + -0x7d8c);\n          pEVar20 = (Elf32_Ehdr *)an;\n          an = (mp_size_t)pEVar34;\n        }" { (expression_statement "uVar44 = *(undefined4 *)(puVar39 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar39 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar39 + -0x4c)" * (cast_expression "(undefined4 *)(puVar39 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x4c)" ( (binary_expression "puVar39 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar43 = *(code **)(puVar39 + -0x80);" (assignment_expression "pcVar43 = *(code **)(puVar39 + -0x80)" identifier = (pointer_expression "*(code **)(puVar39 + -0x80)" * (cast_expression "(code **)(puVar39 + -0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x80)" ( (binary_expression "puVar39 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -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 *)(puVar39 + -0x74)" * (cast_expression "(undefined4 *)(puVar39 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x74)" ( (binary_expression "puVar39 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);" (assignment_expression "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c)" (pointer_expression "*(undefined4 *)(puVar3 + 0x10)" * (cast_expression "(undefined4 *)(puVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar39 + -0x7c)" * (cast_expression "(undefined4 *)(puVar39 + -0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x7c)" ( (binary_expression "puVar39 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar43)(pEVar22,an,uVar44,pEVar34);" (call_expression "(*pcVar43)(pEVar22,an,uVar44,pEVar34)" (parenthesized_expression "(*pcVar43)" ( (pointer_expression "*pcVar43" * identifier) )) (argument_list "(pEVar22,an,uVar44,pEVar34)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar44._0_1_ = pEVar22->e_ident_magic_num;" (assignment_expression "uVar44._0_1_ = pEVar22->e_ident_magic_num" (field_expression "uVar44._0_1_" identifier . field_identifier) = (field_expression "pEVar22->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar44._1_1_ = pEVar22->e_ident_magic_str[0];" (assignment_expression "uVar44._1_1_ = pEVar22->e_ident_magic_str[0]" (field_expression "uVar44._1_1_" identifier . field_identifier) = (subscript_expression "pEVar22->e_ident_magic_str[0]" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar44._2_1_ = pEVar22->e_ident_magic_str[1];" (assignment_expression "uVar44._2_1_ = pEVar22->e_ident_magic_str[1]" (field_expression "uVar44._2_1_" identifier . field_identifier) = (subscript_expression "pEVar22->e_ident_magic_str[1]" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar44._3_1_ = pEVar22->e_ident_magic_str[2];" (assignment_expression "uVar44._3_1_ = pEVar22->e_ident_magic_str[2]" (field_expression "uVar44._3_1_" identifier . field_identifier) = (subscript_expression "pEVar22->e_ident_magic_str[2]" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (puVar41 == (undefined1 *)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            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }" if (parenthesized_expression "(puVar41 == (undefined1 *)0x0)" ( (binary_expression "puVar41 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" 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            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }" else (compound_statement "{\n            pwVar9 = (word *)puVar41;\n            pEVar30 = (Elf32_Ehdr *)dinv;\n            pbVar10 = &pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (word *)0x0);\n            **(undefined4 **)(puVar39 + -0x84) = uVar44;\n          }" { (expression_statement "pwVar9 = (word *)puVar41;" (assignment_expression "pwVar9 = (word *)puVar41" identifier = (cast_expression "(word *)puVar41" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 "pbVar10 = &pEVar22->e_ident_class;" (assignment_expression "pbVar10 = &pEVar22->e_ident_class" identifier = (pointer_expression "&pEVar22->e_ident_class" & (field_expression "pEVar22->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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (byte *)an;\n            } while (pwVar9 != (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)(pbVar10 + 4);\n              pwVar9 = (word *)((int)pwVar9 + -1);\n              uVar44 = *(undefined4 *)pbVar10;\n              pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              pbVar10 = (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)(pbVar10 + 4);" (assignment_expression "an = (mp_size_t)(pbVar10 + 4)" identifier = (call_expression "(mp_size_t)(pbVar10 + 4)" (parenthesized_expression "(mp_size_t)" ( identifier )) (argument_list "(pbVar10 + 4)" ( (binary_expression "pbVar10 + 4" identifier + number_literal) )))) ;) (expression_statement "pwVar9 = (word *)((int)pwVar9 + -1);" (assignment_expression "pwVar9 = (word *)((int)pwVar9 + -1)" identifier = (cast_expression "(word *)((int)pwVar9 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar9 + -1)" ( (binary_expression "(int)pwVar9 + -1" (cast_expression "(int)pwVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (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 "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 "pbVar10 = (byte *)an;" (assignment_expression "pbVar10 = (byte *)an" identifier = (cast_expression "(byte *)an" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(pwVar9 != (word *)0x0)" ( (binary_expression "pwVar9 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar39 + -0x84) = uVar44;" (assignment_expression "**(undefined4 **)(puVar39 + -0x84) = uVar44" (pointer_expression "**(undefined4 **)(puVar39 + -0x84)" * (pointer_expression "*(undefined4 **)(puVar39 + -0x84)" * (cast_expression "(undefined4 **)(puVar39 + -0x84)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x84)" ( (binary_expression "puVar39 + -0x84" identifier + number_literal) ))))) = identifier) ;) }))) (expression_statement "pcVar43 = *(code **)(puVar37 + -0x7d8c);" (assignment_expression "pcVar43 = *(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 = (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)pEVar34;" (assignment_expression "an = (mp_size_t)pEVar34" identifier = (cast_expression "(mp_size_t)pEVar34" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) }))) (if_statement "if ((int)tp < 0) {\n          uVar44 = *(undefined4 *)(puVar39 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar43)(pEVar22,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          if (an < (int)pEVar34) {\n            pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n            pcVar43 = *(code **)(puVar39 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n            (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n            puVar37 = *(undefined **)(puVar39 + -0x90);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;\n            pwVar9 = (word *)puVar41;\n            pEVar29 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar22;\n            if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\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 *)(puVar39 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n          pEVar20 = (Elf32_Ehdr *)dinv;\n          (*pcVar43)(pEVar22,dinv,an,uVar44);\n          an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          if (an < (int)pEVar34) {\n            pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n            pcVar43 = *(code **)(puVar39 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n            (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n            puVar37 = *(undefined **)(puVar39 + -0x90);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;\n            pwVar9 = (word *)puVar41;\n            pEVar29 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar22;\n            if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n          }\n        }" { (expression_statement "uVar44 = *(undefined4 *)(puVar39 + -100);" (assignment_expression "uVar44 = *(undefined4 *)(puVar39 + -100)" identifier = (pointer_expression "*(undefined4 *)(puVar39 + -100)" * (cast_expression "(undefined4 *)(puVar39 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -100)" ( (binary_expression "puVar39 + -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 "(*pcVar43)(pEVar22,dinv,an,uVar44);" (call_expression "(*pcVar43)(pEVar22,dinv,an,uVar44)" (parenthesized_expression "(*pcVar43)" ( (pointer_expression "*pcVar43" * identifier) )) (argument_list "(pEVar22,dinv,an,uVar44)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0));" (assignment_expression "an = (int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0))" identifier = (binary_expression "(int)pEVar32 +\n               ((int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -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 *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0))" ( (binary_expression "(int)&((Elf32_Ehdr *)an)->e_ident_magic_num -\n               (uint)(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -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 *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0)" ( (binary_expression "*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1)" * (cast_expression "(int *)(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1)" ( (binary_expression "pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4 + -1" (binary_expression "pEVar22->e_ident_magic_str +\n                              (int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))) * 4" (field_expression "pEVar22->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 *)(puVar39 + -0x60))) * 4" (cast_expression "(int)(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60)))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60)))" ( (binary_expression "&pEVar32->e_ident_magic_num +\n                                   (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -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 *)(puVar39 + -0x60))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -0x60))" ( (binary_expression "&((Elf32_Ehdr *)an)->e_ident_magic_num +\n                                        *(int *)(puVar39 + -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 *)(puVar39 + -0x60)" * (cast_expression "(int *)(puVar39 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x60)" ( (binary_expression "puVar39 + -0x60" identifier + number_literal) ))))) )))) ))) * number_literal)) + number_literal) )))) == number_literal) )))) )))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (an < (int)pEVar34) {\n            pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n            pcVar43 = *(code **)(puVar39 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n            (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n            puVar37 = *(undefined **)(puVar39 + -0x90);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;\n            pwVar9 = (word *)puVar41;\n            pEVar29 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar22;\n            if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n          }" if (parenthesized_expression "(an < (int)pEVar34)" ( (binary_expression "an < (int)pEVar34" identifier < (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n            if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n              uVar25._0_1_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }\n          }" { (expression_statement "pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);" (assignment_expression "pwVar9 = (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_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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_ = pEVar22->e_ident_magic_num;\n              uVar25._1_1_ = pEVar22->e_ident_magic_str[0];\n              uVar25._2_1_ = pEVar22->e_ident_magic_str[1];\n              uVar25._3_1_ = pEVar22->e_ident_magic_str[2];\n              if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }\n            }" { (expression_statement "uVar25._0_1_ = pEVar22->e_ident_magic_num;" (assignment_expression "uVar25._0_1_ = pEVar22->e_ident_magic_num" (field_expression "uVar25._0_1_" identifier . field_identifier) = (field_expression "pEVar22->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar25._1_1_ = pEVar22->e_ident_magic_str[0];" (assignment_expression "uVar25._1_1_ = pEVar22->e_ident_magic_str[0]" (field_expression "uVar25._1_1_" identifier . field_identifier) = (subscript_expression "pEVar22->e_ident_magic_str[0]" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar25._2_1_ = pEVar22->e_ident_magic_str[1];" (assignment_expression "uVar25._2_1_ = pEVar22->e_ident_magic_str[1]" (field_expression "uVar25._2_1_" identifier . field_identifier) = (subscript_expression "pEVar22->e_ident_magic_str[1]" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar25._3_1_ = pEVar22->e_ident_magic_str[2];" (assignment_expression "uVar25._3_1_ = pEVar22->e_ident_magic_str[2]" (field_expression "uVar25._3_1_" identifier . field_identifier) = (subscript_expression "pEVar22->e_ident_magic_str[2]" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }" if (parenthesized_expression "(pwVar9 == (word *)0x0)" ( (binary_expression "pwVar9 == (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                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1)\n                     = uVar25;\n              }" else (compound_statement "{\n                pEVar30 = (Elf32_Ehdr *)dinv;\n                pbVar10 = &pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (word *)0x0);\n                *(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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 "pbVar10 = &pEVar22->e_ident_class;" (assignment_expression "pbVar10 = &pEVar22->e_ident_class" identifier = (pointer_expression "&pEVar22->e_ident_class" & (field_expression "pEVar22->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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (byte *)pEVar20;\n                } while (pwVar9 != (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 *)(pbVar10 + 4);\n                  pwVar9 = (word *)((int)pwVar9 + -1);\n                  uVar25 = *(undefined4 *)pbVar10;\n                  pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n                  pbVar10 = (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 *)(pbVar10 + 4);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(pbVar10 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar10 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 4)" ( (binary_expression "pbVar10 + 4" identifier + number_literal) )))) ;) (expression_statement "pwVar9 = (word *)((int)pwVar9 + -1);" (assignment_expression "pwVar9 = (word *)((int)pwVar9 + -1)" identifier = (cast_expression "(word *)((int)pwVar9 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar9 + -1)" ( (binary_expression "(int)pwVar9 + -1" (cast_expression "(int)pwVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar25 = *(undefined4 *)pbVar10;" (assignment_expression "uVar25 = *(undefined4 *)pbVar10" identifier = (pointer_expression "*(undefined4 *)pbVar10" * (cast_expression "(undefined4 *)pbVar10" ( (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 "pbVar10 = (byte *)pEVar20;" (assignment_expression "pbVar10 = (byte *)pEVar20" identifier = (cast_expression "(byte *)pEVar20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(pwVar9 != (word *)0x0)" ( (binary_expression "pwVar9 != (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 *)(puVar39 + -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 *)(puVar39 + -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 *)(puVar39 + -0x60)) * 4 + -1)" * (cast_expression "(undefined4 *)\n                 (((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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 *)(puVar39 + -0x60)) * 4 + -1)" ( (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60)) * 4 + -1" (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str +\n                 (int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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 *)(puVar39 + -0x60)) * 4" (cast_expression "(int)(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -0x60))" ( (binary_expression "&((Elf32_Ehdr *)an)->e_ident_magic_num + *(int *)(puVar39 + -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 *)(puVar39 + -0x60)" * (cast_expression "(int *)(puVar39 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x60)" ( (binary_expression "puVar39 + -0x60" identifier + number_literal) ))))) ))) * number_literal)) + number_literal) )))) = identifier) ;) }))) })) }) (else_clause "else {\n            uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n            pcVar43 = *(code **)(puVar39 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n            (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n            puVar37 = *(undefined **)(puVar39 + -0x90);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;\n            pwVar9 = (word *)puVar41;\n            pEVar29 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar22;\n            if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n          }" else (compound_statement "{\n            uVar44 = *(undefined4 *)(puVar39 + -0x4c);\n            pcVar43 = *(code **)(puVar39 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);\n            (*pcVar43)(pEVar22,an,uVar44,pEVar34);\n            puVar37 = *(undefined **)(puVar39 + -0x90);\n            pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;\n            pwVar9 = (word *)puVar41;\n            pEVar29 = (Elf32_Ehdr *)dinv;\n            pEVar30 = pEVar22;\n            if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n          }" { (expression_statement "uVar44 = *(undefined4 *)(puVar39 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar39 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar39 + -0x4c)" * (cast_expression "(undefined4 *)(puVar39 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x4c)" ( (binary_expression "puVar39 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar43 = *(code **)(puVar39 + -0x80);" (assignment_expression "pcVar43 = *(code **)(puVar39 + -0x80)" identifier = (pointer_expression "*(code **)(puVar39 + -0x80)" * (cast_expression "(code **)(puVar39 + -0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x80)" ( (binary_expression "puVar39 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -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 *)(puVar39 + -0x74)" * (cast_expression "(undefined4 *)(puVar39 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x74)" ( (binary_expression "puVar39 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c);" (assignment_expression "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar39 + -0x7c)" (pointer_expression "*(undefined4 *)(puVar3 + 0x10)" * (cast_expression "(undefined4 *)(puVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar39 + -0x7c)" * (cast_expression "(undefined4 *)(puVar39 + -0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x7c)" ( (binary_expression "puVar39 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar43)(pEVar22,an,uVar44,pEVar34);" (call_expression "(*pcVar43)(pEVar22,an,uVar44,pEVar34)" (parenthesized_expression "(*pcVar43)" ( (pointer_expression "*pcVar43" * identifier) )) (argument_list "(pEVar22,an,uVar44,pEVar34)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar22->e_ident_magic_num" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar22->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar22->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar22->e_ident_magic_num" & (field_expression "pEVar22->e_ident_magic_num" identifier -> field_identifier))))) ;) (expression_statement "pwVar9 = (word *)puVar41;" (assignment_expression "pwVar9 = (word *)puVar41" identifier = (cast_expression "(word *)puVar41" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar29 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar29 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar30 = pEVar22;" (assignment_expression "pEVar30 = pEVar22" identifier = identifier) ;) (if_statement "if (puVar41 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }" if (parenthesized_expression "(puVar41 == (undefined1 *)0x0)" ( (binary_expression "puVar41 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" 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)pEVar34;\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)pEVar34;" (assignment_expression "an = (mp_size_t)pEVar34" identifier = (cast_expression "(mp_size_t)pEVar34" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }" else (compound_statement "{\n              do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);\n              **(undefined4 **)(puVar39 + -0x84) = pEVar20;\n              an = (mp_size_t)pEVar34;\n            }" { (do_statement "do {\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              } while (pwVar9 != (word *)0x0);" do (compound_statement "{\n                *(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;\n                pwVar9 = (word *)((int)pwVar9 + -1);\n                pEVar20 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n                pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n                pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n              }" { (expression_statement "*(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)&pEVar29->e_ident_magic_num = pEVar20" (pointer_expression "*(Elf32_Ehdr **)&pEVar29->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar29->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar29->e_ident_magic_num" & (field_expression "pEVar29->e_ident_magic_num" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pwVar9 = (word *)((int)pwVar9 + -1);" (assignment_expression "pwVar9 = (word *)((int)pwVar9 + -1)" identifier = (cast_expression "(word *)((int)pwVar9 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar9 + -1)" ( (binary_expression "(int)pwVar9 + -1" (cast_expression "(int)pwVar9" ( (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 "pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;" (assignment_expression "pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar29->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar29->e_ident_class" & (field_expression "pEVar29->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 "(pwVar9 != (word *)0x0)" ( (binary_expression "pwVar9 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar39 + -0x84) = pEVar20;" (assignment_expression "**(undefined4 **)(puVar39 + -0x84) = pEVar20" (pointer_expression "**(undefined4 **)(puVar39 + -0x84)" * (pointer_expression "*(undefined4 **)(puVar39 + -0x84)" * (cast_expression "(undefined4 **)(puVar39 + -0x84)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x84)" ( (binary_expression "puVar39 + -0x84" identifier + number_literal) ))))) = identifier) ;) (expression_statement "an = (mp_size_t)pEVar34;" (assignment_expression "an = (mp_size_t)pEVar34" identifier = (cast_expression "(mp_size_t)pEVar34" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) }))) }))) })) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -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 "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) ;) (expression_statement "mp = *(mp_srcptr *)(puVar39 + 8);" (assignment_expression "mp = *(mp_srcptr *)(puVar39 + 8)" identifier = (pointer_expression "*(mp_srcptr *)(puVar39 + 8)" * (cast_expression "(mp_srcptr *)(puVar39 + 8)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + 8)" ( (binary_expression "puVar39 + 8" identifier + number_literal) ))))) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)puVar41;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)puVar41" identifier = (cast_expression "(Elf32_Ehdr *)puVar41" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (labeled_statement "LAB_000318d0:\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 "pEVar29 = *(Elf32_Ehdr **)(puVar39 + -0x6c);" (assignment_expression "pEVar29 = *(Elf32_Ehdr **)(puVar39 + -0x6c)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar39 + -0x6c)" * (cast_expression "(Elf32_Ehdr **)(puVar39 + -0x6c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x6c)" ( (binary_expression "puVar39 + -0x6c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar29 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar13 = ((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            pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n            piVar7 = *(int **)(puVar39 + -0x54);\n            if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar7 = (int *)(pcVar13 + -8);\n          pcVar13 = pcVar13 + -4;\n        } while (*piVar7 == 0);\n      }\n      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n      piVar7 = *(int **)(puVar39 + -0x54);\n      if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n         (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar43 = *(code **)(puVar37 + -0x7a80);\n        if (*piVar7 < an) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        tp = *(mp_ptr *)(*(int *)(puVar39 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar14 = (**(code **)(puVar37 + -0x7b2c))(dinv,tp,dinv,an);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        pEVar30 = (Elf32_Ehdr *)an;\n        if (iVar14 == 0) {\nLAB_00031fd0:\n          an = (mp_size_t)pEVar30;\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30)) goto LAB_00031c50;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70));\n          pbVar11 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar11;\n            pbVar11 = pbVar11 + 4;\n            *(undefined4 *)pbVar10 = uVar44;\n            pbVar10 = pbVar10 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar11);\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str;\n          if (an < (int)pEVar34) {\n            pEVar20 = (Elf32_Ehdr *)(an * 4);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            iVar14 = *(int *)pbVar10;\n            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;\n            if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14);\n        iVar14._0_1_ = pEVar30->e_ident_magic_num;\n        iVar14._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar14._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar14._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar14 == 0) {\n          iVar14 = *(int *)(puVar39 + -0x78);\n          pbVar10 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x70);\n          do {\n            iVar14 = iVar14 + -1;\n            if (iVar14 == 0) {\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar7 = (int *)(pbVar10 + -8);\n            pbVar10 = pbVar10 + -4;\n          } while (*piVar7 == 0);\n          *(int *)(puVar39 + -0x78) = iVar14;\n        }\n        an = *(mp_size_t *)(puVar39 + -0x78);\n        if (**(int **)(puVar39 + -0x54) < an) {\n          an = *(mp_size_t *)(puVar39 + -0x78);\n          pcVar43 = *(code **)(puVar37 + -0x7a80);\nLAB_00031fa0:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar43)(*(undefined4 *)(puVar39 + -0x54));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          goto LAB_00031944;\n        }\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n      }\n      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;\n      puVar23 = *(undefined4 **)(*(int *)(puVar39 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar29 = (Elf32_Ehdr *)dinv;\n      if (pwVar9 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n        } while (pwVar9 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }\n    else {\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar22,dinv,an,pEVar29);\n      iVar42 = *(int *)(puVar39 + -0x90);\n      iVar14 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar22->e_ident_magic_str + iVar14 + -1) = iVar15;\n      tp = (mp_ptr)pEVar29;\n      if ((int)pEVar34 <= an) {\n        pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar39 + -0x44;\n        mod((mp_ptr)pEVar22,an,pmVar27,(mp_size_t)pEVar34,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar9 = (word *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar42 = *(int *)(puVar39 + -0x90);\n        uVar17._0_1_ = pEVar22->e_ident_magic_num;\n        uVar17._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 == (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)pEVar34;\n        }\n        else {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar17;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar34;\n        }\nLAB_00031de0:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar39 + -0x6c));\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        goto LAB_000318dc;\n      }\n      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar22->e_ident_magic_num;\n        uVar21._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 != (word *)0x0) {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar21;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          pEVar29 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar29->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_00031de0;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,0,pEVar29);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      pEVar31 = (Elf32_Ehdr *)mp;\nLAB_00031a04:\n      piVar7 = *(int **)(puVar39 + -0x54);\nLAB_00031a08:\n      if (*piVar7 < 0) {\n        tp = *(mp_ptr *)(puVar39 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a80))(tp);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\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 *)(puVar39 + -0x54) + 4) = 0;\n      }\n    }" if (parenthesized_expression "(pEVar29 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar29 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000318dc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar13 = ((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            pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n            piVar7 = *(int **)(puVar39 + -0x54);\n            if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar7 = (int *)(pcVar13 + -8);\n          pcVar13 = pcVar13 + -4;\n        } while (*piVar7 == 0);\n      }\n      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n      piVar7 = *(int **)(puVar39 + -0x54);\n      if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n         (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar43 = *(code **)(puVar37 + -0x7a80);\n        if (*piVar7 < an) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        tp = *(mp_ptr *)(*(int *)(puVar39 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar14 = (**(code **)(puVar37 + -0x7b2c))(dinv,tp,dinv,an);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        pEVar30 = (Elf32_Ehdr *)an;\n        if (iVar14 == 0) {\nLAB_00031fd0:\n          an = (mp_size_t)pEVar30;\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30)) goto LAB_00031c50;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70));\n          pbVar11 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar11;\n            pbVar11 = pbVar11 + 4;\n            *(undefined4 *)pbVar10 = uVar44;\n            pbVar10 = pbVar10 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar11);\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str;\n          if (an < (int)pEVar34) {\n            pEVar20 = (Elf32_Ehdr *)(an * 4);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            iVar14 = *(int *)pbVar10;\n            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;\n            if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14);\n        iVar14._0_1_ = pEVar30->e_ident_magic_num;\n        iVar14._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar14._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar14._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar14 == 0) {\n          iVar14 = *(int *)(puVar39 + -0x78);\n          pbVar10 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x70);\n          do {\n            iVar14 = iVar14 + -1;\n            if (iVar14 == 0) {\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar7 = (int *)(pbVar10 + -8);\n            pbVar10 = pbVar10 + -4;\n          } while (*piVar7 == 0);\n          *(int *)(puVar39 + -0x78) = iVar14;\n        }\n        an = *(mp_size_t *)(puVar39 + -0x78);\n        if (**(int **)(puVar39 + -0x54) < an) {\n          an = *(mp_size_t *)(puVar39 + -0x78);\n          pcVar43 = *(code **)(puVar37 + -0x7a80);\nLAB_00031fa0:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar43)(*(undefined4 *)(puVar39 + -0x54));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          goto LAB_00031944;\n        }\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n      }\n      pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      pEVar20 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)dinv)->e_ident_magic_num;\n      puVar23 = *(undefined4 **)(*(int *)(puVar39 + -0x54) + 8);\n      puVar4 = puVar23;\n      pEVar29 = (Elf32_Ehdr *)dinv;\n      if (pwVar9 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n        } while (pwVar9 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }\n      *puVar23 = pEVar20;\n    }" { (labeled_statement "LAB_000318dc:\n      if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar13 = ((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            pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n            piVar7 = *(int **)(puVar39 + -0x54);\n            if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar7 = (int *)(pcVar13 + -8);\n          pcVar13 = pcVar13 + -4;\n        } while (*piVar7 == 0);\n      }" statement_identifier : (if_statement "if ((0 < an) && (*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5) == 0)) {\n        pcVar13 = ((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            pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n            piVar7 = *(int **)(puVar39 + -0x54);\n            if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar7 = (int *)(pcVar13 + -8);\n          pcVar13 = pcVar13 + -4;\n        } while (*piVar7 == 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        pcVar13 = ((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            pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n            piVar7 = *(int **)(puVar39 + -0x54);\n            if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar7 = (int *)(pcVar13 + -8);\n          pcVar13 = pcVar13 + -4;\n        } while (*piVar7 == 0);\n      }" { (expression_statement "pcVar13 = ((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1;" (assignment_expression "pcVar13 = ((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            pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n            piVar7 = *(int **)(puVar39 + -0x54);\n            if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar7 = (int *)(pcVar13 + -8);\n          pcVar13 = pcVar13 + -4;\n        } while (*piVar7 == 0);" do (compound_statement "{\n          an = (int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1;\n          if ((undefined1 *)an == (undefined1 *)0x0) {\n            pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n            piVar7 = *(int **)(puVar39 + -0x54);\n            if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar7 = (int *)(pcVar13 + -8);\n          pcVar13 = pcVar13 + -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            pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n            piVar7 = *(int **)(puVar39 + -0x54);\n            if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\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            pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n            piVar7 = *(int **)(puVar39 + -0x54);\n            if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }" { (expression_statement "pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)((uint)mp & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)mp & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)mp & 1)" ( (binary_expression "(uint)mp & 1" (cast_expression "(uint)mp" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar7 = *(int **)(puVar39 + -0x54);" (assignment_expression "piVar7 = *(int **)(puVar39 + -0x54)" identifier = (pointer_expression "*(int **)(puVar39 + -0x54)" * (cast_expression "(int **)(puVar39 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))\n            goto LAB_00031934;" if (parenthesized_expression "((pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))" ( (binary_expression "(pEVar31 == (Elf32_Ehdr *)0x0) ||\n               (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4))" (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)) )) || (parenthesized_expression "(piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4))" ( (comma_expression "piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)" (assignment_expression "piVar7 = *(int **)(puVar39 + -0x54)" identifier = (pointer_expression "*(int **)(puVar39 + -0x54)" * (cast_expression "(int **)(puVar39 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar39 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar39 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar39 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar39 + -0x5c) + 4" (pointer_expression "*(int *)(puVar39 + -0x5c)" * (cast_expression "(int *)(puVar39 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x5c)" ( (binary_expression "puVar39 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (goto_statement "goto LAB_00031934;" goto statement_identifier ;)) (goto_statement "goto LAB_00031a08;" goto statement_identifier ;) })) (expression_statement "piVar7 = (int *)(pcVar13 + -8);" (assignment_expression "piVar7 = (int *)(pcVar13 + -8)" identifier = (cast_expression "(int *)(pcVar13 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + -8)" ( (binary_expression "pcVar13 + -8" identifier + number_literal) )))) ;) (expression_statement "pcVar13 = pcVar13 + -4;" (assignment_expression "pcVar13 = pcVar13 + -4" identifier = (binary_expression "pcVar13 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar7 == 0)" ( (binary_expression "*piVar7 == 0" (pointer_expression "*piVar7" * identifier) == number_literal) )) ;) }))) (expression_statement "pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)((uint)mp & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)mp & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)mp & 1)" ( (binary_expression "(uint)mp & 1" (cast_expression "(uint)mp" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar7 = *(int **)(puVar39 + -0x54);" (assignment_expression "piVar7 = *(int **)(puVar39 + -0x54)" identifier = (pointer_expression "*(int **)(puVar39 + -0x54)" * (cast_expression "(int **)(puVar39 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((pEVar31 == (Elf32_Ehdr *)0x0) ||\n         (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar43 = *(code **)(puVar37 + -0x7a80);\n        if (*piVar7 < an) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        tp = *(mp_ptr *)(*(int *)(puVar39 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar14 = (**(code **)(puVar37 + -0x7b2c))(dinv,tp,dinv,an);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        pEVar30 = (Elf32_Ehdr *)an;\n        if (iVar14 == 0) {\nLAB_00031fd0:\n          an = (mp_size_t)pEVar30;\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30)) goto LAB_00031c50;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70));\n          pbVar11 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar11;\n            pbVar11 = pbVar11 + 4;\n            *(undefined4 *)pbVar10 = uVar44;\n            pbVar10 = pbVar10 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar11);\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str;\n          if (an < (int)pEVar34) {\n            pEVar20 = (Elf32_Ehdr *)(an * 4);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            iVar14 = *(int *)pbVar10;\n            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;\n            if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14);\n        iVar14._0_1_ = pEVar30->e_ident_magic_num;\n        iVar14._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar14._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar14._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar14 == 0) {\n          iVar14 = *(int *)(puVar39 + -0x78);\n          pbVar10 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x70);\n          do {\n            iVar14 = iVar14 + -1;\n            if (iVar14 == 0) {\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar7 = (int *)(pbVar10 + -8);\n            pbVar10 = pbVar10 + -4;\n          } while (*piVar7 == 0);\n          *(int *)(puVar39 + -0x78) = iVar14;\n        }\n        an = *(mp_size_t *)(puVar39 + -0x78);\n        if (**(int **)(puVar39 + -0x54) < an) {\n          an = *(mp_size_t *)(puVar39 + -0x78);\n          pcVar43 = *(code **)(puVar37 + -0x7a80);\nLAB_00031fa0:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar43)(*(undefined4 *)(puVar39 + -0x54));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          goto LAB_00031944;\n        }\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n      }" if (parenthesized_expression "((pEVar31 == (Elf32_Ehdr *)0x0) ||\n         (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)))" ( (binary_expression "(pEVar31 == (Elf32_Ehdr *)0x0) ||\n         (piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4))" (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)) )) || (parenthesized_expression "(piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4))" ( (comma_expression "piVar7 = *(int **)(puVar39 + -0x54), -1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)" (assignment_expression "piVar7 = *(int **)(puVar39 + -0x54)" identifier = (pointer_expression "*(int **)(puVar39 + -0x54)" * (cast_expression "(int **)(puVar39 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar39 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar39 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar39 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar39 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar39 + -0x5c) + 4" (pointer_expression "*(int *)(puVar39 + -0x5c)" * (cast_expression "(int *)(puVar39 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x5c)" ( (binary_expression "puVar39 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (compound_statement "{\nLAB_00031934:\n        pcVar43 = *(code **)(puVar37 + -0x7a80);\n        if (*piVar7 < an) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }" { (labeled_statement "LAB_00031934:\n        pcVar43 = *(code **)(puVar37 + -0x7a80);" statement_identifier : (expression_statement "pcVar43 = *(code **)(puVar37 + -0x7a80);" (assignment_expression "pcVar43 = *(code **)(puVar37 + -0x7a80)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7a80)" * (cast_expression "(code **)(puVar37 + -0x7a80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7a80)" ( (binary_expression "puVar37 + -0x7a80" identifier + number_literal) ))))) ;)) (if_statement "if (*piVar7 < an) goto LAB_00031fa0;" if (parenthesized_expression "(*piVar7 < an)" ( (binary_expression "*piVar7 < an" (pointer_expression "*piVar7" * identifier) < identifier) )) (goto_statement "goto LAB_00031fa0;" goto statement_identifier ;)) (labeled_statement "LAB_00031944:\n        pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);" statement_identifier : (expression_statement "pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)((uint)mp & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)mp & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((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 *)(puVar39 + -0x54) + 4) = an;" (assignment_expression "*(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an" (pointer_expression "*(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4)" * (cast_expression "(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar39 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar39 + -0x54) + 4" (pointer_expression "*(int *)(puVar39 + -0x54)" * (cast_expression "(int *)(puVar39 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (if_statement "if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031994;" 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_00031994;" goto statement_identifier ;)) }) (else_clause "else {\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        tp = *(mp_ptr *)(*(int *)(puVar39 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar14 = (**(code **)(puVar37 + -0x7b2c))(dinv,tp,dinv,an);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        pEVar30 = (Elf32_Ehdr *)an;\n        if (iVar14 == 0) {\nLAB_00031fd0:\n          an = (mp_size_t)pEVar30;\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30)) goto LAB_00031c50;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70));\n          pbVar11 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar11;\n            pbVar11 = pbVar11 + 4;\n            *(undefined4 *)pbVar10 = uVar44;\n            pbVar10 = pbVar10 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar11);\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str;\n          if (an < (int)pEVar34) {\n            pEVar20 = (Elf32_Ehdr *)(an * 4);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            iVar14 = *(int *)pbVar10;\n            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;\n            if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14);\n        iVar14._0_1_ = pEVar30->e_ident_magic_num;\n        iVar14._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar14._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar14._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar14 == 0) {\n          iVar14 = *(int *)(puVar39 + -0x78);\n          pbVar10 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x70);\n          do {\n            iVar14 = iVar14 + -1;\n            if (iVar14 == 0) {\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar7 = (int *)(pbVar10 + -8);\n            pbVar10 = pbVar10 + -4;\n          } while (*piVar7 == 0);\n          *(int *)(puVar39 + -0x78) = iVar14;\n        }\n        an = *(mp_size_t *)(puVar39 + -0x78);\n        if (**(int **)(puVar39 + -0x54) < an) {\n          an = *(mp_size_t *)(puVar39 + -0x78);\n          pcVar43 = *(code **)(puVar37 + -0x7a80);\nLAB_00031fa0:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar43)(*(undefined4 *)(puVar39 + -0x54));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          goto LAB_00031944;\n        }\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n      }" else (compound_statement "{\n        if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        tp = *(mp_ptr *)(*(int *)(puVar39 + -0x68) + 8);\n        pEVar20 = (Elf32_Ehdr *)tp;\n        iVar14 = (**(code **)(puVar37 + -0x7b2c))(dinv,tp,dinv,an);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        pEVar30 = (Elf32_Ehdr *)an;\n        if (iVar14 == 0) {\nLAB_00031fd0:\n          an = (mp_size_t)pEVar30;\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30)) goto LAB_00031c50;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70));\n          pbVar11 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar11;\n            pbVar11 = pbVar11 + 4;\n            *(undefined4 *)pbVar10 = uVar44;\n            pbVar10 = pbVar10 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar11);\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str;\n          if (an < (int)pEVar34) {\n            pEVar20 = (Elf32_Ehdr *)(an * 4);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            iVar14 = *(int *)pbVar10;\n            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;\n            if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14);\n        iVar14._0_1_ = pEVar30->e_ident_magic_num;\n        iVar14._1_1_ = pEVar30->e_ident_magic_str[0];\n        iVar14._2_1_ = pEVar30->e_ident_magic_str[1];\n        iVar14._3_1_ = pEVar30->e_ident_magic_str[2];\n        if (iVar14 == 0) {\n          iVar14 = *(int *)(puVar39 + -0x78);\n          pbVar10 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x70);\n          do {\n            iVar14 = iVar14 + -1;\n            if (iVar14 == 0) {\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar7 = (int *)(pbVar10 + -8);\n            pbVar10 = pbVar10 + -4;\n          } while (*piVar7 == 0);\n          *(int *)(puVar39 + -0x78) = iVar14;\n        }\n        an = *(mp_size_t *)(puVar39 + -0x78);\n        if (**(int **)(puVar39 + -0x54) < an) {\n          an = *(mp_size_t *)(puVar39 + -0x78);\n          pcVar43 = *(code **)(puVar37 + -0x7a80);\nLAB_00031fa0:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar43)(*(undefined4 *)(puVar39 + -0x54));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          goto LAB_00031944;\n        }\n        *(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;\n      }" { (if_statement "if ((Elf32_Ehdr *)an == (Elf32_Ehdr *)0x0) goto LAB_00031a04;" 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_00031a04;" goto statement_identifier ;)) (expression_statement "tp = *(mp_ptr *)(*(int *)(puVar39 + -0x68) + 8);" (assignment_expression "tp = *(mp_ptr *)(*(int *)(puVar39 + -0x68) + 8)" identifier = (pointer_expression "*(mp_ptr *)(*(int *)(puVar39 + -0x68) + 8)" * (cast_expression "(mp_ptr *)(*(int *)(puVar39 + -0x68) + 8)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar39 + -0x68) + 8)" ( (binary_expression "*(int *)(puVar39 + -0x68) + 8" (pointer_expression "*(int *)(puVar39 + -0x68)" * (cast_expression "(int *)(puVar39 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x68)" ( (binary_expression "puVar39 + -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 "iVar14 = (**(code **)(puVar37 + -0x7b2c))(dinv,tp,dinv,an);" (assignment_expression "iVar14 = (**(code **)(puVar37 + -0x7b2c))(dinv,tp,dinv,an)" identifier = (call_expression "(**(code **)(puVar37 + -0x7b2c))(dinv,tp,dinv,an)" (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 "(dinv,tp,dinv,an)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)an;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)an" identifier = (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar14 == 0) {\nLAB_00031fd0:\n          an = (mp_size_t)pEVar30;\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30)) goto LAB_00031c50;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70));\n          pbVar11 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar11;\n            pbVar11 = pbVar11 + 4;\n            *(undefined4 *)pbVar10 = uVar44;\n            pbVar10 = pbVar10 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar11);\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }\n        else {\n          pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str;\n          if (an < (int)pEVar34) {\n            pEVar20 = (Elf32_Ehdr *)(an * 4);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            iVar14 = *(int *)pbVar10;\n            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;\n            if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00031fd0:\n          an = (mp_size_t)pEVar30;\n          if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30)) goto LAB_00031c50;\n          pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70));\n          pbVar11 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar11;\n            pbVar11 = pbVar11 + 4;\n            *(undefined4 *)pbVar10 = uVar44;\n            pbVar10 = pbVar10 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar11);\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }" { (labeled_statement "LAB_00031fd0:\n          an = (mp_size_t)pEVar30;" statement_identifier : (expression_statement "an = (mp_size_t)pEVar30;" (assignment_expression "an = (mp_size_t)pEVar30" identifier = (cast_expression "(mp_size_t)pEVar30" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;)) (if_statement "if ((dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30)) goto LAB_00031c50;" if (parenthesized_expression "((dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30))" ( (binary_expression "(dinv == (gmp_pi1_t *)tp) || ((int)pEVar34 <= (int)pEVar30)" (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)pEVar34 <= (int)pEVar30)" ( (binary_expression "(int)pEVar34 <= (int)pEVar30" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_00031c50;" goto statement_identifier ;)) (expression_statement "pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70));" (assignment_expression "pEVar20 = (Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70))" identifier = (cast_expression "(Elf32_Ehdr *)\n                    (&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -0x70))" ( (binary_expression "&((Elf32_Ehdr *)tp)->e_ident_magic_num + *(int *)(puVar39 + -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 *)(puVar39 + -0x70)" * (cast_expression "(int *)(puVar39 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x70)" ( (binary_expression "puVar39 + -0x70" identifier + number_literal) ))))) )))) ;) (expression_statement "pbVar11 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1);" (assignment_expression "pbVar11 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1)" identifier = (cast_expression "(byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1)" ( (binary_expression "((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 4 + -1" (binary_expression "((Elf32_Ehdr *)tp)->e_ident_magic_str + (int)pEVar30 * 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 "(int)pEVar30 * 4" (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1);" (assignment_expression "pbVar10 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1)" identifier = (cast_expression "(byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1)" ( (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 4 + -1" (binary_expression "((Elf32_Ehdr *)dinv)->e_ident_magic_str + (int)pEVar30 * 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)pEVar30 * 4" (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (do_statement "do {\n            uVar44 = *(undefined4 *)pbVar11;\n            pbVar11 = pbVar11 + 4;\n            *(undefined4 *)pbVar10 = uVar44;\n            pbVar10 = pbVar10 + 4;\n          } while (pEVar20 != (Elf32_Ehdr *)pbVar11);" do (compound_statement "{\n            uVar44 = *(undefined4 *)pbVar11;\n            pbVar11 = pbVar11 + 4;\n            *(undefined4 *)pbVar10 = uVar44;\n            pbVar10 = pbVar10 + 4;\n          }" { (expression_statement "uVar44 = *(undefined4 *)pbVar11;" (assignment_expression "uVar44 = *(undefined4 *)pbVar11" identifier = (pointer_expression "*(undefined4 *)pbVar11" * (cast_expression "(undefined4 *)pbVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 4;" (assignment_expression "pbVar11 = pbVar11 + 4" identifier = (binary_expression "pbVar11 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar10 = uVar44;" (assignment_expression "*(undefined4 *)pbVar10 = uVar44" (pointer_expression "*(undefined4 *)pbVar10" * (cast_expression "(undefined4 *)pbVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar10 = pbVar10 + 4;" (assignment_expression "pbVar10 = pbVar10 + 4" identifier = (binary_expression "pbVar10 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pEVar20 != (Elf32_Ehdr *)pbVar11)" ( (binary_expression "pEVar20 != (Elf32_Ehdr *)pbVar11" identifier != (cast_expression "(Elf32_Ehdr *)pbVar11" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "iVar14 = *(int *)(puVar39 + -0x50);" (assignment_expression "iVar14 = *(int *)(puVar39 + -0x50)" identifier = (pointer_expression "*(int *)(puVar39 + -0x50)" * (cast_expression "(int *)(puVar39 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -0x50" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str;\n          if (an < (int)pEVar34) {\n            pEVar20 = (Elf32_Ehdr *)(an * 4);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            iVar14 = *(int *)pbVar10;\n            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;\n            if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }" else (compound_statement "{\n          pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str;\n          if (an < (int)pEVar34) {\n            pEVar20 = (Elf32_Ehdr *)(an * 4);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            iVar14 = *(int *)pbVar10;\n            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;\n            if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar14 = *(int *)(puVar39 + -0x50);\n        }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str" identifier = (cast_expression "(Elf32_Ehdr *)((Elf32_Ehdr *)an)->e_ident_magic_str" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((Elf32_Ehdr *)an)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)an)" ( (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) ;) (if_statement "if (an < (int)pEVar34) {\n            pEVar20 = (Elf32_Ehdr *)(an * 4);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            iVar14 = *(int *)pbVar10;\n            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;\n            if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }" if (parenthesized_expression "(an < (int)pEVar34)" ( (binary_expression "an < (int)pEVar34" identifier < (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pEVar20 = (Elf32_Ehdr *)(an * 4);\n            pbVar10 = (byte *)(((Elf32_Ehdr *)tp)->e_ident_magic_str + an * 4 + -1);\n            iVar14 = *(int *)pbVar10;\n            *(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;\n            if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }" { (expression_statement "pEVar20 = (Elf32_Ehdr *)(an * 4);" (assignment_expression "pEVar20 = (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 "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 "iVar14 = *(int *)pbVar10;" (assignment_expression "iVar14 = *(int *)pbVar10" identifier = (pointer_expression "*(int *)pbVar10" * (cast_expression "(int *)pbVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1;" (assignment_expression "*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1) = iVar14 + -1" (pointer_expression "*(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1)" * (cast_expression "(int *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1)" ( (type_descriptor "int *" primitive_type (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) )))) = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (if_statement "if (iVar14 == 0) {\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n              pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n              if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;\n              pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);\n              pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;\n              pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);\n              iVar14 = *(int *)pbVar11;\n              *(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;\n              pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);\n              while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }\n            }" { (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)))) ;) (if_statement "if ((int)pEVar34 <= (int)pEVar30) goto LAB_00031c50;" if (parenthesized_expression "((int)pEVar34 <= (int)pEVar30)" ( (binary_expression "(int)pEVar34 <= (int)pEVar30" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00031c50;" goto statement_identifier ;)) (expression_statement "pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num);" (assignment_expression "pbVar11 = (byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num)" identifier = (cast_expression "(byte *)((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num)" ( (binary_expression "(int)pEVar20 + (int)&((Elf32_Ehdr *)tp)->e_ident_magic_num" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)&((Elf32_Ehdr *)tp)->e_ident_magic_num" ( (type_descriptor "int" primitive_type) ) (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)))) )))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)\n              ;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num)" ( (binary_expression "(int)pEVar20 + (int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)&((Elf32_Ehdr *)dinv)->e_ident_magic_num" ( (type_descriptor "int" primitive_type) ) (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 "pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1)" identifier = (cast_expression "(Elf32_Ehdr *)(((Elf32_Ehdr *)an)->e_ident_magic_str + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((Elf32_Ehdr *)an)->e_ident_magic_str + 1)" ( (binary_expression "((Elf32_Ehdr *)an)->e_ident_magic_str + 1" (field_expression "((Elf32_Ehdr *)an)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)an)" ( (cast_expression "(Elf32_Ehdr *)an" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + number_literal) )))) ;) (expression_statement "iVar14 = *(int *)pbVar11;" (assignment_expression "iVar14 = *(int *)pbVar11" identifier = (pointer_expression "*(int *)pbVar11" * (cast_expression "(int *)pbVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(int *)&pEVar20->e_ident_magic_num = iVar14 + -1;" (assignment_expression "*(int *)&pEVar20->e_ident_magic_num = iVar14 + -1" (pointer_expression "*(int *)&pEVar20->e_ident_magic_num" * (cast_expression "(int *)&pEVar20->e_ident_magic_num" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar20->e_ident_magic_num" & (field_expression "pEVar20->e_ident_magic_num" identifier -> field_identifier)))) = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "pbVar11 = (byte *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -1);" (assignment_expression "pbVar11 = (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) )))) ;) (while_statement "while (iVar14 == 0) {\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }" while (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n                an = (mp_size_t)pEVar30;\n                if (pEVar34 == pEVar30) goto LAB_00031c50;\n                iVar14 = *(int *)(pbVar10 + 8);\n                pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;\n                pbVar10 = pbVar10 + 4;\n                pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);\n                *(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;\n                pbVar11 = pbVar11 + 4;\n              }" { (expression_statement "an = (mp_size_t)pEVar30;" (assignment_expression "an = (mp_size_t)pEVar30" identifier = (cast_expression "(mp_size_t)pEVar30" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) (if_statement "if (pEVar34 == pEVar30) goto LAB_00031c50;" if (parenthesized_expression "(pEVar34 == pEVar30)" ( (binary_expression "pEVar34 == pEVar30" identifier == identifier) )) (goto_statement "goto LAB_00031c50;" goto statement_identifier ;)) (expression_statement "iVar14 = *(int *)(pbVar10 + 8);" (assignment_expression "iVar14 = *(int *)(pbVar10 + 8)" identifier = (pointer_expression "*(int *)(pbVar10 + 8)" * (cast_expression "(int *)(pbVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 8)" ( (binary_expression "pbVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)pEVar30->e_ident_magic_str" identifier = (cast_expression "(Elf32_Ehdr *)pEVar30->e_ident_magic_str" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier))) ;) (expression_statement "pbVar10 = pbVar10 + 4;" (assignment_expression "pbVar10 = pbVar10 + 4" identifier = (binary_expression "pbVar10 + 4" identifier + number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)(iVar14 + -1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(iVar14 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(iVar14 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + -1)" ( (binary_expression "iVar14 + -1" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(pbVar11 + 8) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(pbVar11 + 8)" * (cast_expression "(Elf32_Ehdr **)(pbVar11 + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 8)" ( (binary_expression "pbVar11 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar11 = pbVar11 + 4;" (assignment_expression "pbVar11 = pbVar11 + 4" identifier = (binary_expression "pbVar11 + 4" identifier + number_literal)) ;) })) })) (goto_statement "goto LAB_00031fd0;" goto statement_identifier ;) })) (labeled_statement "LAB_00031c50:\n          iVar14 = *(int *)(puVar39 + -0x50);" statement_identifier : (expression_statement "iVar14 = *(int *)(puVar39 + -0x50);" (assignment_expression "iVar14 = *(int *)(puVar39 + -0x50)" identifier = (pointer_expression "*(int *)(puVar39 + -0x50)" * (cast_expression "(int *)(puVar39 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -0x50" identifier + number_literal) ))))) ;)) }))) (expression_statement "pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14)" identifier = (cast_expression "(Elf32_Ehdr *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14)" ( (binary_expression "&((Elf32_Ehdr *)dinv)->e_ident_magic_num + iVar14" (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 "iVar14._0_1_ = pEVar30->e_ident_magic_num;" (assignment_expression "iVar14._0_1_ = pEVar30->e_ident_magic_num" (field_expression "iVar14._0_1_" identifier . field_identifier) = (field_expression "pEVar30->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "iVar14._1_1_ = pEVar30->e_ident_magic_str[0];" (assignment_expression "iVar14._1_1_ = pEVar30->e_ident_magic_str[0]" (field_expression "iVar14._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 "iVar14._2_1_ = pEVar30->e_ident_magic_str[1];" (assignment_expression "iVar14._2_1_ = pEVar30->e_ident_magic_str[1]" (field_expression "iVar14._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 "iVar14._3_1_ = pEVar30->e_ident_magic_str[2];" (assignment_expression "iVar14._3_1_ = pEVar30->e_ident_magic_str[2]" (field_expression "iVar14._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 (iVar14 == 0) {\n          iVar14 = *(int *)(puVar39 + -0x78);\n          pbVar10 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x70);\n          do {\n            iVar14 = iVar14 + -1;\n            if (iVar14 == 0) {\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar7 = (int *)(pbVar10 + -8);\n            pbVar10 = pbVar10 + -4;\n          } while (*piVar7 == 0);\n          *(int *)(puVar39 + -0x78) = iVar14;\n        }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar14 = *(int *)(puVar39 + -0x78);\n          pbVar10 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x70);\n          do {\n            iVar14 = iVar14 + -1;\n            if (iVar14 == 0) {\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar7 = (int *)(pbVar10 + -8);\n            pbVar10 = pbVar10 + -4;\n          } while (*piVar7 == 0);\n          *(int *)(puVar39 + -0x78) = iVar14;\n        }" { (expression_statement "iVar14 = *(int *)(puVar39 + -0x78);" (assignment_expression "iVar14 = *(int *)(puVar39 + -0x78)" identifier = (pointer_expression "*(int *)(puVar39 + -0x78)" * (cast_expression "(int *)(puVar39 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x78)" ( (binary_expression "puVar39 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pbVar10 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x70);" (assignment_expression "pbVar10 = &((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x70)" identifier = (binary_expression "&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -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 *)(puVar39 + -0x70)" * (cast_expression "(int *)(puVar39 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x70)" ( (binary_expression "puVar39 + -0x70" identifier + number_literal) )))))) ;) (do_statement "do {\n            iVar14 = iVar14 + -1;\n            if (iVar14 == 0) {\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar7 = (int *)(pbVar10 + -8);\n            pbVar10 = pbVar10 + -4;\n          } while (*piVar7 == 0);" do (compound_statement "{\n            iVar14 = iVar14 + -1;\n            if (iVar14 == 0) {\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar7 = (int *)(pbVar10 + -8);\n            pbVar10 = pbVar10 + -4;\n          }" { (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (if_statement "if (iVar14 == 0) {\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar7 = *(int **)(puVar39 + -0x54);\n              goto LAB_00031a08;\n            }" { (expression_statement "piVar7 = *(int **)(puVar39 + -0x54);" (assignment_expression "piVar7 = *(int **)(puVar39 + -0x54)" identifier = (pointer_expression "*(int **)(puVar39 + -0x54)" * (cast_expression "(int **)(puVar39 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00031a08;" goto statement_identifier ;) })) (expression_statement "piVar7 = (int *)(pbVar10 + -8);" (assignment_expression "piVar7 = (int *)(pbVar10 + -8)" identifier = (cast_expression "(int *)(pbVar10 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + -8)" ( (binary_expression "pbVar10 + -8" identifier + number_literal) )))) ;) (expression_statement "pbVar10 = pbVar10 + -4;" (assignment_expression "pbVar10 = pbVar10 + -4" identifier = (binary_expression "pbVar10 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar7 == 0)" ( (binary_expression "*piVar7 == 0" (pointer_expression "*piVar7" * identifier) == number_literal) )) ;) (expression_statement "*(int *)(puVar39 + -0x78) = iVar14;" (assignment_expression "*(int *)(puVar39 + -0x78) = iVar14" (pointer_expression "*(int *)(puVar39 + -0x78)" * (cast_expression "(int *)(puVar39 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x78)" ( (binary_expression "puVar39 + -0x78" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "an = *(mp_size_t *)(puVar39 + -0x78);" (assignment_expression "an = *(mp_size_t *)(puVar39 + -0x78)" identifier = (pointer_expression "*(mp_size_t *)(puVar39 + -0x78)" * (cast_expression "(mp_size_t *)(puVar39 + -0x78)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x78)" ( (binary_expression "puVar39 + -0x78" identifier + number_literal) ))))) ;) (if_statement "if (**(int **)(puVar39 + -0x54) < an) {\n          an = *(mp_size_t *)(puVar39 + -0x78);\n          pcVar43 = *(code **)(puVar37 + -0x7a80);\nLAB_00031fa0:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar43)(*(undefined4 *)(puVar39 + -0x54));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          goto LAB_00031944;\n        }" if (parenthesized_expression "(**(int **)(puVar39 + -0x54) < an)" ( (binary_expression "**(int **)(puVar39 + -0x54) < an" (pointer_expression "**(int **)(puVar39 + -0x54)" * (pointer_expression "*(int **)(puVar39 + -0x54)" * (cast_expression "(int **)(puVar39 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -0x54" identifier + number_literal) ))))) < identifier) )) (compound_statement "{\n          an = *(mp_size_t *)(puVar39 + -0x78);\n          pcVar43 = *(code **)(puVar37 + -0x7a80);\nLAB_00031fa0:\n          pEVar20 = (Elf32_Ehdr *)an;\n          (*pcVar43)(*(undefined4 *)(puVar39 + -0x54));\n          puVar37 = *(undefined **)(puVar39 + -0x90);\n          goto LAB_00031944;\n        }" { (expression_statement "an = *(mp_size_t *)(puVar39 + -0x78);" (assignment_expression "an = *(mp_size_t *)(puVar39 + -0x78)" identifier = (pointer_expression "*(mp_size_t *)(puVar39 + -0x78)" * (cast_expression "(mp_size_t *)(puVar39 + -0x78)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x78)" ( (binary_expression "puVar39 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pcVar43 = *(code **)(puVar37 + -0x7a80);" (assignment_expression "pcVar43 = *(code **)(puVar37 + -0x7a80)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7a80)" * (cast_expression "(code **)(puVar37 + -0x7a80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7a80)" ( (binary_expression "puVar37 + -0x7a80" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031fa0:\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 "(*pcVar43)(*(undefined4 *)(puVar39 + -0x54));" (call_expression "(*pcVar43)(*(undefined4 *)(puVar39 + -0x54))" (parenthesized_expression "(*pcVar43)" ( (pointer_expression "*pcVar43" * identifier) )) (argument_list "(*(undefined4 *)(puVar39 + -0x54))" ( (pointer_expression "*(undefined4 *)(puVar39 + -0x54)" * (cast_expression "(undefined4 *)(puVar39 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -0x54" identifier + number_literal) )))) ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00031944;" goto statement_identifier ;) })) (expression_statement "*(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an;" (assignment_expression "*(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4) = an" (pointer_expression "*(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4)" * (cast_expression "(mp_size_t *)(*(int *)(puVar39 + -0x54) + 4)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar39 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar39 + -0x54) + 4" (pointer_expression "*(int *)(puVar39 + -0x54)" * (cast_expression "(int *)(puVar39 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }))) (expression_statement "pEVar31 = (Elf32_Ehdr *)((uint)mp & 1);" (assignment_expression "pEVar31 = (Elf32_Ehdr *)((uint)mp & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)mp & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)mp & 1)" ( (binary_expression "(uint)mp & 1" (cast_expression "(uint)mp" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);" (assignment_expression "pwVar9 = (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 *)(puVar39 + -0x54) + 8);" (assignment_expression "puVar23 = *(undefined4 **)(*(int *)(puVar39 + -0x54) + 8)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(puVar39 + -0x54) + 8)" * (cast_expression "(undefined4 **)(*(int *)(puVar39 + -0x54) + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar39 + -0x54) + 8)" ( (binary_expression "*(int *)(puVar39 + -0x54) + 8" (pointer_expression "*(int *)(puVar39 + -0x54)" * (cast_expression "(int *)(puVar39 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -0x54" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar4 = puVar23;" (assignment_expression "puVar4 = puVar23" identifier = identifier) ;) (expression_statement "pEVar29 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar29 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pwVar9 != (word *)0x0) {\n        do {\n          *puVar4 = pEVar20;\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n        } while (pwVar9 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }" if (parenthesized_expression "(pwVar9 != (word *)0x0)" ( (binary_expression "pwVar9 != (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          pwVar9 = (word *)((int)pwVar9 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n        } while (pwVar9 != (word *)0x0);\n        puVar23 = puVar23 + (int)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      }" { (do_statement "do {\n          *puVar4 = pEVar20;\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n        } while (pwVar9 != (word *)0x0);" do (compound_statement "{\n          *puVar4 = pEVar20;\n          pwVar9 = (word *)((int)pwVar9 + -1);\n          pEVar20 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n        }" { (expression_statement "*puVar4 = pEVar20;" (assignment_expression "*puVar4 = pEVar20" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "pwVar9 = (word *)((int)pwVar9 + -1);" (assignment_expression "pwVar9 = (word *)((int)pwVar9 + -1)" identifier = (cast_expression "(word *)((int)pwVar9 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar9 + -1)" ( (binary_expression "(int)pwVar9 + -1" (cast_expression "(int)pwVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)&pEVar29->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar29->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar29->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar29->e_ident_class" & (field_expression "pEVar29->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 "pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;" (assignment_expression "pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar29->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar29->e_ident_class" & (field_expression "pEVar29->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pwVar9 != (word *)0x0)" ( (binary_expression "pwVar9 != (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 **)(puVar37 + -0x7ad4))(pEVar22,dinv,an,pEVar29);\n      iVar42 = *(int *)(puVar39 + -0x90);\n      iVar14 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar22->e_ident_magic_str + iVar14 + -1) = iVar15;\n      tp = (mp_ptr)pEVar29;\n      if ((int)pEVar34 <= an) {\n        pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar39 + -0x44;\n        mod((mp_ptr)pEVar22,an,pmVar27,(mp_size_t)pEVar34,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar9 = (word *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar42 = *(int *)(puVar39 + -0x90);\n        uVar17._0_1_ = pEVar22->e_ident_magic_num;\n        uVar17._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 == (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)pEVar34;\n        }\n        else {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar17;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar34;\n        }\nLAB_00031de0:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar39 + -0x6c));\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        goto LAB_000318dc;\n      }\n      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar22->e_ident_magic_num;\n        uVar21._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 != (word *)0x0) {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar21;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          pEVar29 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar29->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_00031de0;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,0,pEVar29);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      pEVar31 = (Elf32_Ehdr *)mp;\nLAB_00031a04:\n      piVar7 = *(int **)(puVar39 + -0x54);\nLAB_00031a08:\n      if (*piVar7 < 0) {\n        tp = *(mp_ptr *)(puVar39 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a80))(tp);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\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 *)(puVar39 + -0x54) + 4) = 0;\n      }\n    }" else (compound_statement "{\n      iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar22,dinv,an,pEVar29);\n      iVar42 = *(int *)(puVar39 + -0x90);\n      iVar14 = an * 4;\n      an = (mp_size_t)(&((Elf32_Ehdr *)an)->e_ident_magic_num + (iVar15 != 0));\n      *(int *)(pEVar22->e_ident_magic_str + iVar14 + -1) = iVar15;\n      tp = (mp_ptr)pEVar29;\n      if ((int)pEVar34 <= an) {\n        pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar39 + -0x44;\n        mod((mp_ptr)pEVar22,an,pmVar27,(mp_size_t)pEVar34,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar9 = (word *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar42 = *(int *)(puVar39 + -0x90);\n        uVar17._0_1_ = pEVar22->e_ident_magic_num;\n        uVar17._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 == (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)pEVar34;\n        }\n        else {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar17;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar34;\n        }\nLAB_00031de0:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar39 + -0x6c));\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        goto LAB_000318dc;\n      }\n      pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);\n      if ((Elf32_Ehdr *)an != (Elf32_Ehdr *)0x0) {\n        uVar21._0_1_ = pEVar22->e_ident_magic_num;\n        uVar21._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 != (word *)0x0) {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar21;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          pEVar29 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar29->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_00031de0;\n      }\n      pEVar20 = (Elf32_Ehdr *)dinv;\n      (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,0,pEVar29);\n      puVar37 = *(undefined **)(puVar39 + -0x90);\n      pEVar31 = (Elf32_Ehdr *)mp;\nLAB_00031a04:\n      piVar7 = *(int **)(puVar39 + -0x54);\nLAB_00031a08:\n      if (*piVar7 < 0) {\n        tp = *(mp_ptr *)(puVar39 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a80))(tp);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\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 *)(puVar39 + -0x54) + 4) = 0;\n      }\n    }" { (expression_statement "iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar22,dinv,an,pEVar29);" (assignment_expression "iVar15 = (**(code **)(puVar37 + -0x7ad4))(pEVar22,dinv,an,pEVar29)" identifier = (call_expression "(**(code **)(puVar37 + -0x7ad4))(pEVar22,dinv,an,pEVar29)" (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 "(pEVar22,dinv,an,pEVar29)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar42 = *(int *)(puVar39 + -0x90);" (assignment_expression "iVar42 = *(int *)(puVar39 + -0x90)" identifier = (pointer_expression "*(int *)(puVar39 + -0x90)" * (cast_expression "(int *)(puVar39 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = an * 4;" (assignment_expression "iVar14 = 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 *)(pEVar22->e_ident_magic_str + iVar14 + -1) = iVar15;" (assignment_expression "*(int *)(pEVar22->e_ident_magic_str + iVar14 + -1) = iVar15" (pointer_expression "*(int *)(pEVar22->e_ident_magic_str + iVar14 + -1)" * (cast_expression "(int *)(pEVar22->e_ident_magic_str + iVar14 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar22->e_ident_magic_str + iVar14 + -1)" ( (binary_expression "pEVar22->e_ident_magic_str + iVar14 + -1" (binary_expression "pEVar22->e_ident_magic_str + iVar14" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "tp = (mp_ptr)pEVar29;" (assignment_expression "tp = (mp_ptr)pEVar29" identifier = (cast_expression "(mp_ptr)pEVar29" ( (type_descriptor "mp_ptr" type_identifier) ) identifier)) ;) (if_statement "if ((int)pEVar34 <= an) {\n        pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar39 + -0x44;\n        mod((mp_ptr)pEVar22,an,pmVar27,(mp_size_t)pEVar34,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar9 = (word *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar42 = *(int *)(puVar39 + -0x90);\n        uVar17._0_1_ = pEVar22->e_ident_magic_num;\n        uVar17._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 == (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)pEVar34;\n        }\n        else {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar17;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar34;\n        }\nLAB_00031de0:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar39 + -0x6c));\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        goto LAB_000318dc;\n      }" if (parenthesized_expression "((int)pEVar34 <= an)" ( (binary_expression "(int)pEVar34 <= an" (cast_expression "(int)pEVar34" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n        pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar39 + -0x44;\n        mod((mp_ptr)pEVar22,an,pmVar27,(mp_size_t)pEVar34,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));\n        pwVar9 = (word *)((int)&pEVar34[-1].e_shstrndx + 1);\n        iVar42 = *(int *)(puVar39 + -0x90);\n        uVar17._0_1_ = pEVar22->e_ident_magic_num;\n        uVar17._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar17._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar17._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 == (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)pEVar34;\n        }\n        else {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar17;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar34;\n        }\nLAB_00031de0:\n        pEVar20 = (Elf32_Ehdr *)dinv;\n        (**(code **)(iVar42 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar39 + -0x6c));\n        puVar37 = *(undefined **)(puVar39 + -0x90);\n        goto LAB_000318dc;\n      }" { (expression_statement "pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c);" (assignment_expression "pmVar27 = *(mp_srcptr *)(puVar39 + -0x4c)" identifier = (pointer_expression "*(mp_srcptr *)(puVar39 + -0x4c)" * (cast_expression "(mp_srcptr *)(puVar39 + -0x4c)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x4c)" ( (binary_expression "puVar39 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar39 + -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 *)(puVar39 + -0x74)" * (cast_expression "(undefined4 *)(puVar39 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x74)" ( (binary_expression "puVar39 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar39 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar39 + -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 "puVar39 + -0x44" identifier + number_literal)) ;) (expression_statement "mod((mp_ptr)pEVar22,an,pmVar27,(mp_size_t)pEVar34,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14));" (call_expression "mod((mp_ptr)pEVar22,an,pmVar27,(mp_size_t)pEVar34,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14))" identifier (argument_list "((mp_ptr)pEVar22,an,pmVar27,(mp_size_t)pEVar34,*(gmp_pi1_t **)(puVar3 + 0x10),\n            *(mp_ptr *)(puVar3 + 0x14))" ( (cast_expression "(mp_ptr)pEVar22" ( (type_descriptor "mp_ptr" type_identifier) ) identifier) , identifier , identifier , (cast_expression "(mp_size_t)pEVar34" ( (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 "pwVar9 = (word *)((int)&pEVar34[-1].e_shstrndx + 1);" (assignment_expression "pwVar9 = (word *)((int)&pEVar34[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar34[-1].e_shstrndx + 1)" ( (type_descriptor "word *" 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 "iVar42 = *(int *)(puVar39 + -0x90);" (assignment_expression "iVar42 = *(int *)(puVar39 + -0x90)" identifier = (pointer_expression "*(int *)(puVar39 + -0x90)" * (cast_expression "(int *)(puVar39 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar17._0_1_ = pEVar22->e_ident_magic_num;" (assignment_expression "uVar17._0_1_ = pEVar22->e_ident_magic_num" (field_expression "uVar17._0_1_" identifier . field_identifier) = (field_expression "pEVar22->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar17._1_1_ = pEVar22->e_ident_magic_str[0];" (assignment_expression "uVar17._1_1_ = pEVar22->e_ident_magic_str[0]" (field_expression "uVar17._1_1_" identifier . field_identifier) = (subscript_expression "pEVar22->e_ident_magic_str[0]" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar17._2_1_ = pEVar22->e_ident_magic_str[1];" (assignment_expression "uVar17._2_1_ = pEVar22->e_ident_magic_str[1]" (field_expression "uVar17._2_1_" identifier . field_identifier) = (subscript_expression "pEVar22->e_ident_magic_str[1]" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar17._3_1_ = pEVar22->e_ident_magic_str[2];" (assignment_expression "uVar17._3_1_ = pEVar22->e_ident_magic_str[2]" (field_expression "uVar17._3_1_" identifier . field_identifier) = (subscript_expression "pEVar22->e_ident_magic_str[2]" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar29 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar29 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar20 = pEVar22;" (assignment_expression "pEVar20 = pEVar22" identifier = identifier) ;) (if_statement "if (pwVar9 == (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)pEVar34;\n        }\n        else {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar17;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar34;\n        }" if (parenthesized_expression "(pwVar9 == (word *)0x0)" ( (binary_expression "pwVar9 == (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)pEVar34;\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)pEVar34;" (assignment_expression "an = (mp_size_t)pEVar34" identifier = (cast_expression "(mp_size_t)pEVar34" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar17;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar34;\n        }" else (compound_statement "{\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar17;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          *(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)) =\n               uVar17;\n          an = (mp_size_t)pEVar34;\n        }" { (do_statement "do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar17;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);" do (compound_statement "{\n            pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar17;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          }" { (expression_statement "pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18);" (assignment_expression "pEVar29->e_ident_magic_num = (char)((uint)uVar17 >> 0x18)" (field_expression "pEVar29->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 "pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10);" (assignment_expression "pEVar29->e_ident_magic_str[0] = (char)((uint)uVar17 >> 0x10)" (subscript_expression "pEVar29->e_ident_magic_str[0]" (field_expression "pEVar29->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 "pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8);" (assignment_expression "pEVar29->e_ident_magic_str[1] = (char)((uint)uVar17 >> 8)" (subscript_expression "pEVar29->e_ident_magic_str[1]" (field_expression "pEVar29->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 "pEVar29->e_ident_magic_str[2] = (char)uVar17;" (assignment_expression "pEVar29->e_ident_magic_str[2] = (char)uVar17" (subscript_expression "pEVar29->e_ident_magic_str[2]" (field_expression "pEVar29->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pwVar9 = (word *)((int)pwVar9 + -1);" (assignment_expression "pwVar9 = (word *)((int)pwVar9 + -1)" identifier = (cast_expression "(word *)((int)pwVar9 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar9 + -1)" ( (binary_expression "(int)pwVar9 + -1" (cast_expression "(int)pwVar9" ( (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 "pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;" (assignment_expression "pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar29->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar29->e_ident_class" & (field_expression "pEVar29->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 "(pwVar9 != (word *)0x0)" ( (binary_expression "pwVar9 != (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 *)(puVar39 + -0x50)) =\n               uVar17;" (assignment_expression "*(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50)) =\n               uVar17" (pointer_expression "*(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50))" * (cast_expression "(undefined4 *)(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -0x50))" ( (binary_expression "&((Elf32_Ehdr *)dinv)->e_ident_magic_num + *(int *)(puVar39 + -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 *)(puVar39 + -0x50)" * (cast_expression "(int *)(puVar39 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x50)" ( (binary_expression "puVar39 + -0x50" identifier + number_literal) ))))) )))) = identifier) ;) (expression_statement "an = (mp_size_t)pEVar34;" (assignment_expression "an = (mp_size_t)pEVar34" identifier = (cast_expression "(mp_size_t)pEVar34" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) }))) (labeled_statement "LAB_00031de0:\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 **)(iVar42 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar39 + -0x6c));" (call_expression "(**(code **)(iVar42 + -0x7ae0))(dinv,dinv,an,*(undefined4 *)(puVar39 + -0x6c))" (parenthesized_expression "(**(code **)(iVar42 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar42 + -0x7ae0)" * (pointer_expression "*(code **)(iVar42 + -0x7ae0)" * (cast_expression "(code **)(iVar42 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar42 + -0x7ae0)" ( (binary_expression "iVar42 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(dinv,dinv,an,*(undefined4 *)(puVar39 + -0x6c))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(puVar39 + -0x6c)" * (cast_expression "(undefined4 *)(puVar39 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x6c)" ( (binary_expression "puVar39 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000318dc;" goto statement_identifier ;) })) (expression_statement "pwVar9 = (word *)((int)&((Elf32_Ehdr *)(an + -0x34))->e_shstrndx + 1);" (assignment_expression "pwVar9 = (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_ = pEVar22->e_ident_magic_num;\n        uVar21._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 != (word *)0x0) {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar21;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          pEVar29 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar29->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_00031de0;\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_ = pEVar22->e_ident_magic_num;\n        uVar21._1_1_ = pEVar22->e_ident_magic_str[0];\n        uVar21._2_1_ = pEVar22->e_ident_magic_str[1];\n        uVar21._3_1_ = pEVar22->e_ident_magic_str[2];\n        pEVar29 = (Elf32_Ehdr *)dinv;\n        pEVar20 = pEVar22;\n        if (pwVar9 != (word *)0x0) {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar21;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          pEVar29 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }\n        pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n        pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n        pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n        pEVar29->e_ident_magic_str[2] = (char)uVar21;\n        goto LAB_00031de0;\n      }" { (expression_statement "uVar21._0_1_ = pEVar22->e_ident_magic_num;" (assignment_expression "uVar21._0_1_ = pEVar22->e_ident_magic_num" (field_expression "uVar21._0_1_" identifier . field_identifier) = (field_expression "pEVar22->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar21._1_1_ = pEVar22->e_ident_magic_str[0];" (assignment_expression "uVar21._1_1_ = pEVar22->e_ident_magic_str[0]" (field_expression "uVar21._1_1_" identifier . field_identifier) = (subscript_expression "pEVar22->e_ident_magic_str[0]" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar21._2_1_ = pEVar22->e_ident_magic_str[1];" (assignment_expression "uVar21._2_1_ = pEVar22->e_ident_magic_str[1]" (field_expression "uVar21._2_1_" identifier . field_identifier) = (subscript_expression "pEVar22->e_ident_magic_str[1]" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar21._3_1_ = pEVar22->e_ident_magic_str[2];" (assignment_expression "uVar21._3_1_ = pEVar22->e_ident_magic_str[2]" (field_expression "uVar21._3_1_" identifier . field_identifier) = (subscript_expression "pEVar22->e_ident_magic_str[2]" (field_expression "pEVar22->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar29 = (Elf32_Ehdr *)dinv;" (assignment_expression "pEVar29 = (Elf32_Ehdr *)dinv" identifier = (cast_expression "(Elf32_Ehdr *)dinv" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar20 = pEVar22;" (assignment_expression "pEVar20 = pEVar22" identifier = identifier) ;) (if_statement "if (pwVar9 != (word *)0x0) {\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar21;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          pEVar29 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }" if (parenthesized_expression "(pwVar9 != (word *)0x0)" ( (binary_expression "pwVar9 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar21;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);\n          pEVar29 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);\n        }" { (do_statement "do {\n            pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar21;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          } while (pwVar9 != (word *)0x0);" do (compound_statement "{\n            pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar29->e_ident_magic_str[2] = (char)uVar21;\n            pwVar9 = (word *)((int)pwVar9 + -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            pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n            pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n          }" { (expression_statement "pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);" (assignment_expression "pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18)" (field_expression "pEVar29->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 "pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);" (assignment_expression "pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10)" (subscript_expression "pEVar29->e_ident_magic_str[0]" (field_expression "pEVar29->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 "pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);" (assignment_expression "pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8)" (subscript_expression "pEVar29->e_ident_magic_str[1]" (field_expression "pEVar29->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 "pEVar29->e_ident_magic_str[2] = (char)uVar21;" (assignment_expression "pEVar29->e_ident_magic_str[2] = (char)uVar21" (subscript_expression "pEVar29->e_ident_magic_str[2]" (field_expression "pEVar29->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar21" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pwVar9 = (word *)((int)pwVar9 + -1);" (assignment_expression "pwVar9 = (word *)((int)pwVar9 + -1)" identifier = (cast_expression "(word *)((int)pwVar9 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar9 + -1)" ( (binary_expression "(int)pwVar9 + -1" (cast_expression "(int)pwVar9" ( (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 "pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;" (assignment_expression "pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar29->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar29->e_ident_class" & (field_expression "pEVar29->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 "(pwVar9 != (word *)0x0)" ( (binary_expression "pwVar9 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar29 = (Elf32_Ehdr *)(((Elf32_Ehdr *)dinv)->e_ident_magic_str + an * 4 + -5);" (assignment_expression "pEVar29 = (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 "pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);" (assignment_expression "pEVar29->e_ident_magic_num = (char)((uint)uVar21 >> 0x18)" (field_expression "pEVar29->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 "pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);" (assignment_expression "pEVar29->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10)" (subscript_expression "pEVar29->e_ident_magic_str[0]" (field_expression "pEVar29->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 "pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);" (assignment_expression "pEVar29->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8)" (subscript_expression "pEVar29->e_ident_magic_str[1]" (field_expression "pEVar29->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 "pEVar29->e_ident_magic_str[2] = (char)uVar21;" (assignment_expression "pEVar29->e_ident_magic_str[2] = (char)uVar21" (subscript_expression "pEVar29->e_ident_magic_str[2]" (field_expression "pEVar29->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar21" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_00031de0;" 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 **)(iVar42 + -0x7ae0))(dinv,dinv,0,pEVar29);" (call_expression "(**(code **)(iVar42 + -0x7ae0))(dinv,dinv,0,pEVar29)" (parenthesized_expression "(**(code **)(iVar42 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar42 + -0x7ae0)" * (pointer_expression "*(code **)(iVar42 + -0x7ae0)" * (cast_expression "(code **)(iVar42 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar42 + -0x7ae0)" ( (binary_expression "iVar42 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(dinv,dinv,0,pEVar29)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar31 = (Elf32_Ehdr *)mp;" (assignment_expression "pEVar31 = (Elf32_Ehdr *)mp" identifier = (cast_expression "(Elf32_Ehdr *)mp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_00031a04:\n      piVar7 = *(int **)(puVar39 + -0x54);" statement_identifier : (expression_statement "piVar7 = *(int **)(puVar39 + -0x54);" (assignment_expression "piVar7 = *(int **)(puVar39 + -0x54)" identifier = (pointer_expression "*(int **)(puVar39 + -0x54)" * (cast_expression "(int **)(puVar39 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -0x54" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_00031a08:\n      if (*piVar7 < 0) {\n        tp = *(mp_ptr *)(puVar39 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a80))(tp);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\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 *)(puVar39 + -0x54) + 4) = 0;\n      }" statement_identifier : (if_statement "if (*piVar7 < 0) {\n        tp = *(mp_ptr *)(puVar39 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a80))(tp);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\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 *)(puVar39 + -0x54) + 4) = 0;\n      }" if (parenthesized_expression "(*piVar7 < 0)" ( (binary_expression "*piVar7 < 0" (pointer_expression "*piVar7" * identifier) < number_literal) )) (compound_statement "{\n        tp = *(mp_ptr *)(puVar39 + -0x54);\n        pEVar20 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar37 + -0x7a80))(tp);\n        puVar37 = *(undefined **)(puVar39 + -0x90);\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 *)(puVar39 + -0x54);" (assignment_expression "tp = *(mp_ptr *)(puVar39 + -0x54)" identifier = (pointer_expression "*(mp_ptr *)(puVar39 + -0x54)" * (cast_expression "(mp_ptr *)(puVar39 + -0x54)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -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 + -0x7a80))(tp);" (call_expression "(**(code **)(puVar37 + -0x7a80))(tp)" (parenthesized_expression "(**(code **)(puVar37 + -0x7a80))" ( (pointer_expression "**(code **)(puVar37 + -0x7a80)" * (pointer_expression "*(code **)(puVar37 + -0x7a80)" * (cast_expression "(code **)(puVar37 + -0x7a80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7a80)" ( (binary_expression "puVar37 + -0x7a80" identifier + number_literal) ))))) )) (argument_list "(tp)" ( identifier ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" 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 *)(puVar39 + -0x54) + 4) = 0;\n      }" else (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar39 + -0x54) + 4) = 0;\n      }" { (expression_statement "*(undefined4 *)(*(int *)(puVar39 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar39 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar39 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar39 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar39 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar39 + -0x54) + 4" (pointer_expression "*(int *)(puVar39 + -0x54)" * (cast_expression "(int *)(puVar39 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x54)" ( (binary_expression "puVar39 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) })))) }))) (labeled_statement "LAB_00031994:\n    ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);" statement_identifier : (expression_statement "ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40);" (assignment_expression "ptVar16 = *(tmp_reentrant_t **)(puVar39 + -0x40)" identifier = (pointer_expression "*(tmp_reentrant_t **)(puVar39 + -0x40)" * (cast_expression "(tmp_reentrant_t **)(puVar39 + -0x40)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x40)" ( (binary_expression "puVar39 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "piVar7 = *(int **)(puVar39 + -0x58);" (assignment_expression "piVar7 = *(int **)(puVar39 + -0x58)" identifier = (pointer_expression "*(int **)(puVar39 + -0x58)" * (cast_expression "(int **)(puVar39 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x58)" ( (binary_expression "puVar39 + -0x58" identifier + number_literal) ))))) ;) (if_statement "if (ptVar16 != (tmp_reentrant_t *)0x0) {\n      pcVar43 = *(code **)(puVar37 + -0x7a28);\n      goto LAB_00031708;\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      pcVar43 = *(code **)(puVar37 + -0x7a28);\n      goto LAB_00031708;\n    }" { (expression_statement "pcVar43 = *(code **)(puVar37 + -0x7a28);" (assignment_expression "pcVar43 = *(code **)(puVar37 + -0x7a28)" identifier = (pointer_expression "*(code **)(puVar37 + -0x7a28)" * (cast_expression "(code **)(puVar37 + -0x7a28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7a28)" ( (binary_expression "puVar37 + -0x7a28" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00031708;" goto statement_identifier ;) })) }) (else_clause "else {\n    pcVar43 = *(code **)(puVar36 + 0x6c110);\n    *(mp_srcptr *)(puVar39 + -0x3c) = mp;\n    *(undefined4 *)(puVar39 + -0x34) = 1;\n    *(undefined1 **)(puVar39 + -0x30) = puVar39 + -0x3c;\n    (*pcVar43)();\n    puVar37 = *(undefined **)(puVar39 + -0x90);\nLAB_00031764:\n    piVar7 = *(int **)(puVar39 + -0x58);\n  }" else (compound_statement "{\n    pcVar43 = *(code **)(puVar36 + 0x6c110);\n    *(mp_srcptr *)(puVar39 + -0x3c) = mp;\n    *(undefined4 *)(puVar39 + -0x34) = 1;\n    *(undefined1 **)(puVar39 + -0x30) = puVar39 + -0x3c;\n    (*pcVar43)();\n    puVar37 = *(undefined **)(puVar39 + -0x90);\nLAB_00031764:\n    piVar7 = *(int **)(puVar39 + -0x58);\n  }" { (expression_statement "pcVar43 = *(code **)(puVar36 + 0x6c110);" (assignment_expression "pcVar43 = *(code **)(puVar36 + 0x6c110)" identifier = (pointer_expression "*(code **)(puVar36 + 0x6c110)" * (cast_expression "(code **)(puVar36 + 0x6c110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x6c110)" ( (binary_expression "puVar36 + 0x6c110" identifier + number_literal) ))))) ;) (expression_statement "*(mp_srcptr *)(puVar39 + -0x3c) = mp;" (assignment_expression "*(mp_srcptr *)(puVar39 + -0x3c) = mp" (pointer_expression "*(mp_srcptr *)(puVar39 + -0x3c)" * (cast_expression "(mp_srcptr *)(puVar39 + -0x3c)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x3c)" ( (binary_expression "puVar39 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar39 + -0x34) = 1;" (assignment_expression "*(undefined4 *)(puVar39 + -0x34) = 1" (pointer_expression "*(undefined4 *)(puVar39 + -0x34)" * (cast_expression "(undefined4 *)(puVar39 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x34)" ( (binary_expression "puVar39 + -0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar39 + -0x30) = puVar39 + -0x3c;" (assignment_expression "*(undefined1 **)(puVar39 + -0x30) = puVar39 + -0x3c" (pointer_expression "*(undefined1 **)(puVar39 + -0x30)" * (cast_expression "(undefined1 **)(puVar39 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x30)" ( (binary_expression "puVar39 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar39 + -0x3c" identifier + number_literal)) ;) (expression_statement "(*pcVar43)();" (call_expression "(*pcVar43)()" (parenthesized_expression "(*pcVar43)" ( (pointer_expression "*pcVar43" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar37 = *(undefined **)(puVar39 + -0x90);" (assignment_expression "puVar37 = *(undefined **)(puVar39 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar39 + -0x90)" * (cast_expression "(undefined **)(puVar39 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x90)" ( (binary_expression "puVar39 + -0x90" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031764:\n    piVar7 = *(int **)(puVar39 + -0x58);" statement_identifier : (expression_statement "piVar7 = *(int **)(puVar39 + -0x58);" (assignment_expression "piVar7 = *(int **)(puVar39 + -0x58)" identifier = (pointer_expression "*(int **)(puVar39 + -0x58)" * (cast_expression "(int **)(puVar39 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar39 + -0x58)" ( (binary_expression "puVar39 + -0x58" identifier + number_literal) ))))) ;)) }))) (if_statement "if (*(int *)(puVar39 + -0x2c) == *piVar7) {\n    return;\n  }" if (parenthesized_expression "(*(int *)(puVar39 + -0x2c) == *piVar7)" ( (binary_expression "*(int *)(puVar39 + -0x2c) == *piVar7" (pointer_expression "*(int *)(puVar39 + -0x2c)" * (cast_expression "(int *)(puVar39 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar39 + -0x2c)" ( (binary_expression "puVar39 + -0x2c" identifier + number_literal) )))) == (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar43 = *(code **)(puVar37 + -0x7b70);" (assignment_expression "pcVar43 = *(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 "uVar44 = 0x3206c;" (assignment_expression "uVar44 = 0x3206c" identifier = number_literal) ;) (expression_statement "(*pcVar43)();" (call_expression "(*pcVar43)()" (parenthesized_expression "(*pcVar43)" ( (pointer_expression "*pcVar43" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar38 = pcVar43 + 0x72fd0;" (assignment_expression "pcVar38 = pcVar43 + 0x72fd0" identifier = (binary_expression "pcVar43 + 0x72fd0" identifier + number_literal)) ;) (expression_statement "puVar41 = puVar3 + -0x38;" (assignment_expression "puVar41 = puVar3 + -0x38" identifier = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar31;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar31" (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 "piVar7 = *(int **)(pcVar43 + 0x6b4d0);" (assignment_expression "piVar7 = *(int **)(pcVar43 + 0x6b4d0)" identifier = (pointer_expression "*(int **)(pcVar43 + 0x6b4d0)" * (cast_expression "(int **)(pcVar43 + 0x6b4d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar43 + 0x6b4d0)" ( (binary_expression "pcVar43 + 0x6b4d0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + -8) = puVar39 + -0xa8;" (assignment_expression "*(undefined1 **)(puVar3 + -8) = puVar39 + -0xa8" (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 "puVar39 + -0xa8" 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) = *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 ((int)ptVar16->next < (int)(((uint)pEVar20 >> 5) + ((uint)pEVar20 >> 6) + 1)) {\n      pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar43 + 0x6b550))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;\n    }\n    iVar14 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar18 = 8;\n    do {\n      uVar47 = uVar18;\n      pEVar30 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar18 = uVar47 - 1;\n    } while (pEVar30 < pEVar20);\n    if (uVar47 == 0) {\n      trap(7);\n    }\n    uVar18 = ((iVar14 + 1U) / uVar47 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar18 < 0x7f01) {\n      iVar14 = -(uVar18 + 7 & 0xfffffff8);\n      puVar41 = puVar3 + iVar14 + -0x38;\n      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar14 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar47 = 1;\n    iVar14 = 0;\n    uVar18 = 0;\n    ptVar33 = (tmp_reentrant_t *)0x6;\n    do {\n      uVar48 = uVar18 + 1;\n      iVar42 = iVar14;\n      ptVar35 = ptVar33;\n      if ((uVar47 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar35 = (tmp_reentrant_t *)((uVar48 & 1) + 1 + uVar48 * 3);\n        if ((int)(ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar35 = (tmp_reentrant_t *)((int)ptVar33 * (int)ptVar35);\n        }\n        else {\n          iVar42 = iVar14 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1) = ptVar33;\n        }\n      }\n      uVar47 = uVar47 * 2 - ((int)uVar47 >> 0x1f);\n      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar47 & 1);\n      iVar14 = iVar42;\n      uVar18 = uVar48;\n      ptVar33 = ptVar35;\n    } while (bVar1);\n    if (iVar42 == 0) {\n      (ptVar16[1].next)->next = ptVar35;\n      ptVar16->size = 1;\n    }\n    else {\n      pcVar43 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar42 * 4 + -1) = ptVar35;\n      (*pcVar43)(ptVar16,pEVar30,iVar42 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    ptVar33 = *(tmp_reentrant_t **)(puVar3 + -0x20);\n    if (ptVar33 != (tmp_reentrant_t *)0x0) {\n      (**(code **)(pcVar38 + -0x7a28))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar29 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar43 + 0x6affc) + 0x3750);\n    (ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar29->e_ident_magic_num;\n    ptVar16->size = 1;\n    ptVar33 = ptVar16;\n    pEVar30 = pEVar20;\n    pEVar20 = pEVar29;\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 **)(pcVar43 + 0x6b550))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar32 = (Elf32_Ehdr *)ptVar16[1].next;\n    }\n    iVar14 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);\n    pcVar38 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar38 + -0x7c6c) + 0x1c);\n    uVar18 = 8;\n    do {\n      uVar47 = uVar18;\n      pEVar30 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar18 = uVar47 - 1;\n    } while (pEVar30 < pEVar20);\n    if (uVar47 == 0) {\n      trap(7);\n    }\n    uVar18 = ((iVar14 + 1U) / uVar47 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar18 < 0x7f01) {\n      iVar14 = -(uVar18 + 7 & 0xfffffff8);\n      puVar41 = puVar3 + iVar14 + -0x38;\n      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar14 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar38 + -0x7d50))(puVar3 + -0x20);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    iVar15 = 0;\n    uVar47 = 1;\n    iVar14 = 0;\n    uVar18 = 0;\n    ptVar33 = (tmp_reentrant_t *)0x6;\n    do {\n      uVar48 = uVar18 + 1;\n      iVar42 = iVar14;\n      ptVar35 = ptVar33;\n      if ((uVar47 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar35 = (tmp_reentrant_t *)((uVar48 & 1) + 1 + uVar48 * 3);\n        if ((int)(ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar35 = (tmp_reentrant_t *)((int)ptVar33 * (int)ptVar35);\n        }\n        else {\n          iVar42 = iVar14 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1) = ptVar33;\n        }\n      }\n      uVar47 = uVar47 * 2 - ((int)uVar47 >> 0x1f);\n      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar47 & 1);\n      iVar14 = iVar42;\n      uVar18 = uVar48;\n      ptVar33 = ptVar35;\n    } while (bVar1);\n    if (iVar42 == 0) {\n      (ptVar16[1].next)->next = ptVar35;\n      ptVar16->size = 1;\n    }\n    else {\n      pcVar43 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar42 * 4 + -1) = ptVar35;\n      (*pcVar43)(ptVar16,pEVar30,iVar42 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }\n    ptVar33 = *(tmp_reentrant_t **)(puVar3 + -0x20);\n    if (ptVar33 != (tmp_reentrant_t *)0x0) {\n      (**(code **)(pcVar38 + -0x7a28))();\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 **)(pcVar43 + 0x6b550))();\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 **)(pcVar43 + 0x6b550))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar43 + 0x6b550))();" (assignment_expression "pEVar32 = (Elf32_Ehdr *)(**(code **)(pcVar43 + 0x6b550))()" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar43 + 0x6b550))()" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar43 + 0x6b550))()" (parenthesized_expression "(**(code **)(pcVar43 + 0x6b550))" ( (pointer_expression "**(code **)(pcVar43 + 0x6b550)" * (pointer_expression "*(code **)(pcVar43 + 0x6b550)" * (cast_expression "(code **)(pcVar43 + 0x6b550)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar43 + 0x6b550)" ( (binary_expression "pcVar43 + 0x6b550" 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 "iVar14 = (**(code **)(pcVar38 + -0x7efc))(pEVar32,pEVar20);" (assignment_expression "iVar14 = (**(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      uVar47 = uVar18;\n      pEVar30 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar18 = uVar47 - 1;\n    } while (pEVar30 < pEVar20);" do (compound_statement "{\n      uVar47 = uVar18;\n      pEVar30 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar18 = uVar47 - 1;\n    }" { (expression_statement "uVar47 = uVar18;" (assignment_expression "uVar47 = 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 = uVar47 - 1;" (assignment_expression "uVar18 = uVar47 - 1" identifier = (binary_expression "uVar47 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(pEVar30 < pEVar20)" ( (binary_expression "pEVar30 < pEVar20" identifier < identifier) )) ;) (if_statement "if (uVar47 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar47 == 0)" ( (binary_expression "uVar47 == 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 = ((iVar14 + 1U) / uVar47 + 1) * 4;" (assignment_expression "uVar18 = ((iVar14 + 1U) / uVar47 + 1) * 4" identifier = (binary_expression "((iVar14 + 1U) / uVar47 + 1) * 4" (parenthesized_expression "((iVar14 + 1U) / uVar47 + 1)" ( (binary_expression "(iVar14 + 1U) / uVar47 + 1" (binary_expression "(iVar14 + 1U) / uVar47" (parenthesized_expression "(iVar14 + 1U)" ( (binary_expression "iVar14 + 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      iVar14 = -(uVar18 + 7 & 0xfffffff8);\n      puVar41 = puVar3 + iVar14 + -0x38;\n      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar14 + -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      iVar14 = -(uVar18 + 7 & 0xfffffff8);\n      puVar41 = puVar3 + iVar14 + -0x38;\n      pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar14 + -0x28);\n    }" { (expression_statement "iVar14 = -(uVar18 + 7 & 0xfffffff8);" (assignment_expression "iVar14 = -(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 + iVar14 + -0x38;" (assignment_expression "puVar41 = puVar3 + iVar14 + -0x38" identifier = (binary_expression "puVar3 + iVar14 + -0x38" (binary_expression "puVar3 + iVar14" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar14 + -0x28);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(puVar3 + iVar14 + -0x28)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar14 + -0x28)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar14 + -0x28)" ( (binary_expression "puVar3 + iVar14 + -0x28" (binary_expression "puVar3 + iVar14" 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 "uVar47 = 1;" (assignment_expression "uVar47 = 1" identifier = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "ptVar33 = (tmp_reentrant_t *)0x6;" (assignment_expression "ptVar33 = (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      uVar48 = uVar18 + 1;\n      iVar42 = iVar14;\n      ptVar35 = ptVar33;\n      if ((uVar47 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar35 = (tmp_reentrant_t *)((uVar48 & 1) + 1 + uVar48 * 3);\n        if ((int)(ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar35 = (tmp_reentrant_t *)((int)ptVar33 * (int)ptVar35);\n        }\n        else {\n          iVar42 = iVar14 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1) = ptVar33;\n        }\n      }\n      uVar47 = uVar47 * 2 - ((int)uVar47 >> 0x1f);\n      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar47 & 1);\n      iVar14 = iVar42;\n      uVar18 = uVar48;\n      ptVar33 = ptVar35;\n    } while (bVar1);" do (compound_statement "{\n      uVar48 = uVar18 + 1;\n      iVar42 = iVar14;\n      ptVar35 = ptVar33;\n      if ((uVar47 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar35 = (tmp_reentrant_t *)((uVar48 & 1) + 1 + uVar48 * 3);\n        if ((int)(ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar35 = (tmp_reentrant_t *)((int)ptVar33 * (int)ptVar35);\n        }\n        else {\n          iVar42 = iVar14 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1) = ptVar33;\n        }\n      }\n      uVar47 = uVar47 * 2 - ((int)uVar47 >> 0x1f);\n      bVar1 = uVar18 != ((uint)((int)&pEVar20[-1].e_shentsize + 1) | 1) / 3;\n      iVar15 = iVar15 + (uVar47 & 1);\n      iVar14 = iVar42;\n      uVar18 = uVar48;\n      ptVar33 = ptVar35;\n    }" { (expression_statement "uVar48 = uVar18 + 1;" (assignment_expression "uVar48 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar42 = iVar14;" (assignment_expression "iVar42 = iVar14" identifier = identifier) ;) (expression_statement "ptVar35 = ptVar33;" (assignment_expression "ptVar35 = ptVar33" identifier = identifier) ;) (if_statement "if ((uVar47 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0) {\n        ptVar35 = (tmp_reentrant_t *)((uVar48 & 1) + 1 + uVar48 * 3);\n        if ((int)(ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar35 = (tmp_reentrant_t *)((int)ptVar33 * (int)ptVar35);\n        }\n        else {\n          iVar42 = iVar14 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1) = ptVar33;\n        }\n      }" if (parenthesized_expression "((uVar47 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0)" ( (binary_expression "(uVar47 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1)) == 0" (parenthesized_expression "(uVar47 & *(uint *)(pEVar32->e_ident_magic_str + iVar15 * 4 + -1))" ( (binary_expression "uVar47 & *(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        ptVar35 = (tmp_reentrant_t *)((uVar48 & 1) + 1 + uVar48 * 3);\n        if ((int)(ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar35 = (tmp_reentrant_t *)((int)ptVar33 * (int)ptVar35);\n        }\n        else {\n          iVar42 = iVar14 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1) = ptVar33;\n        }\n      }" { (expression_statement "ptVar35 = (tmp_reentrant_t *)((uVar48 & 1) + 1 + uVar48 * 3);" (assignment_expression "ptVar35 = (tmp_reentrant_t *)((uVar48 & 1) + 1 + uVar48 * 3)" identifier = (cast_expression "(tmp_reentrant_t *)((uVar48 & 1) + 1 + uVar48 * 3)" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar48 & 1) + 1 + uVar48 * 3)" ( (binary_expression "(uVar48 & 1) + 1 + uVar48 * 3" (binary_expression "(uVar48 & 1) + 1" (parenthesized_expression "(uVar48 & 1)" ( (binary_expression "uVar48 & 1" identifier & number_literal) )) + number_literal) + (binary_expression "uVar48 * 3" identifier * number_literal)) )))) ;) (if_statement "if ((int)(ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20) == 0) {\n          ptVar35 = (tmp_reentrant_t *)((int)ptVar33 * (int)ptVar35);\n        }\n        else {\n          iVar42 = iVar14 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1) = ptVar33;\n        }" if (parenthesized_expression "((int)(ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20) == 0)" ( (binary_expression "(int)(ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20) == 0" (cast_expression "(int)(ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20)" ( (binary_expression "ZEXT48(ptVar33) * ZEXT48(pEVar20) >> 0x20" (binary_expression "ZEXT48(ptVar33) * ZEXT48(pEVar20)" (call_expression "ZEXT48(ptVar33)" identifier (argument_list "(ptVar33)" ( identifier ))) * (call_expression "ZEXT48(pEVar20)" identifier (argument_list "(pEVar20)" ( identifier )))) >> number_literal) ))) == number_literal) )) (compound_statement "{\n          ptVar35 = (tmp_reentrant_t *)((int)ptVar33 * (int)ptVar35);\n        }" { (expression_statement "ptVar35 = (tmp_reentrant_t *)((int)ptVar33 * (int)ptVar35);" (assignment_expression "ptVar35 = (tmp_reentrant_t *)((int)ptVar33 * (int)ptVar35)" identifier = (cast_expression "(tmp_reentrant_t *)((int)ptVar33 * (int)ptVar35)" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ptVar33 * (int)ptVar35)" ( (binary_expression "(int)ptVar33 * (int)ptVar35" (cast_expression "(int)ptVar33" ( (type_descriptor "int" primitive_type) ) identifier) * (cast_expression "(int)ptVar35" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n          iVar42 = iVar14 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1) = ptVar33;\n        }" else (compound_statement "{\n          iVar42 = iVar14 + 1;\n          *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1) = ptVar33;\n        }" { (expression_statement "iVar42 = iVar14 + 1;" (assignment_expression "iVar42 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "*(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1) = ptVar33;" (assignment_expression "*(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1) = ptVar33" (pointer_expression "*(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1)" * (cast_expression "(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar14 * 4 + -1)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + iVar14 * 4 + -1)" ( (binary_expression "pEVar30->e_ident_magic_str + iVar14 * 4 + -1" (binary_expression "pEVar30->e_ident_magic_str + iVar14 * 4" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar14 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) }))) })) (expression_statement "uVar47 = uVar47 * 2 - ((int)uVar47 >> 0x1f);" (assignment_expression "uVar47 = uVar47 * 2 - ((int)uVar47 >> 0x1f)" identifier = (binary_expression "uVar47 * 2 - ((int)uVar47 >> 0x1f)" (binary_expression "uVar47 * 2" identifier * number_literal) - (parenthesized_expression "((int)uVar47 >> 0x1f)" ( (binary_expression "(int)uVar47 >> 0x1f" (cast_expression "(int)uVar47" ( (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 + (uVar47 & 1);" (assignment_expression "iVar15 = iVar15 + (uVar47 & 1)" identifier = (binary_expression "iVar15 + (uVar47 & 1)" identifier + (parenthesized_expression "(uVar47 & 1)" ( (binary_expression "uVar47 & 1" identifier & number_literal) )))) ;) (expression_statement "iVar14 = iVar42;" (assignment_expression "iVar14 = iVar42" identifier = identifier) ;) (expression_statement "uVar18 = uVar48;" (assignment_expression "uVar18 = uVar48" identifier = identifier) ;) (expression_statement "ptVar33 = ptVar35;" (assignment_expression "ptVar33 = ptVar35" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (if_statement "if (iVar42 == 0) {\n      (ptVar16[1].next)->next = ptVar35;\n      ptVar16->size = 1;\n    }\n    else {\n      pcVar43 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar42 * 4 + -1) = ptVar35;\n      (*pcVar43)(ptVar16,pEVar30,iVar42 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(iVar42 == 0)" ( (binary_expression "iVar42 == 0" identifier == number_literal) )) (compound_statement "{\n      (ptVar16[1].next)->next = ptVar35;\n      ptVar16->size = 1;\n    }" { (expression_statement "(ptVar16[1].next)->next = ptVar35;" (assignment_expression "(ptVar16[1].next)->next = ptVar35" (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      pcVar43 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar42 * 4 + -1) = ptVar35;\n      (*pcVar43)(ptVar16,pEVar30,iVar42 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" else (compound_statement "{\n      pcVar43 = *(code **)(pcVar38 + -0x7dbc);\n      *(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar42 * 4 + -1) = ptVar35;\n      (*pcVar43)(ptVar16,pEVar30,iVar42 + 1);\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pcVar43 = *(code **)(pcVar38 + -0x7dbc);" (assignment_expression "pcVar43 = *(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 + iVar42 * 4 + -1) = ptVar35;" (assignment_expression "*(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar42 * 4 + -1) = ptVar35" (pointer_expression "*(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar42 * 4 + -1)" * (cast_expression "(tmp_reentrant_t **)(pEVar30->e_ident_magic_str + iVar42 * 4 + -1)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + iVar42 * 4 + -1)" ( (binary_expression "pEVar30->e_ident_magic_str + iVar42 * 4 + -1" (binary_expression "pEVar30->e_ident_magic_str + iVar42 * 4" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar42 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar43)(ptVar16,pEVar30,iVar42 + 1);" (call_expression "(*pcVar43)(ptVar16,pEVar30,iVar42 + 1)" (parenthesized_expression "(*pcVar43)" ( (pointer_expression "*pcVar43" * identifier) )) (argument_list "(ptVar16,pEVar30,iVar42 + 1)" ( identifier , identifier , (binary_expression "iVar42 + 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 "ptVar33 = *(tmp_reentrant_t **)(puVar3 + -0x20);" (assignment_expression "ptVar33 = *(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 (ptVar33 != (tmp_reentrant_t *)0x0) {\n      (**(code **)(pcVar38 + -0x7a28))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(ptVar33 != (tmp_reentrant_t *)0x0)" ( (binary_expression "ptVar33 != (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 + -0x7a28))();\n      pcVar38 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "(**(code **)(pcVar38 + -0x7a28))();" (call_expression "(**(code **)(pcVar38 + -0x7a28))()" (parenthesized_expression "(**(code **)(pcVar38 + -0x7a28))" ( (pointer_expression "**(code **)(pcVar38 + -0x7a28)" * (pointer_expression "*(code **)(pcVar38 + -0x7a28)" * (cast_expression "(code **)(pcVar38 + -0x7a28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + -0x7a28)" ( (binary_expression "pcVar38 + -0x7a28" 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    pEVar29 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar43 + 0x6affc) + 0x3750);\n    (ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar29->e_ident_magic_num;\n    ptVar16->size = 1;\n    ptVar33 = ptVar16;\n    pEVar30 = pEVar20;\n    pEVar20 = pEVar29;\n    puVar41 = puVar3 + -0x38;\n  }" else (compound_statement "{\n    pEVar29 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar43 + 0x6affc) + 0x3750);\n    (ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar29->e_ident_magic_num;\n    ptVar16->size = 1;\n    ptVar33 = ptVar16;\n    pEVar30 = pEVar20;\n    pEVar20 = pEVar29;\n    puVar41 = puVar3 + -0x38;\n  }" { (expression_statement "pEVar29 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar43 + 0x6affc) + 0x3750);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar43 + 0x6affc) + 0x3750)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar20 * 4 + *(int *)(pcVar43 + 0x6affc) + 0x3750)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 * 4 + *(int *)(pcVar43 + 0x6affc) + 0x3750)" ( (binary_expression "(int)pEVar20 * 4 + *(int *)(pcVar43 + 0x6affc) + 0x3750" (binary_expression "(int)pEVar20 * 4 + *(int *)(pcVar43 + 0x6affc)" (binary_expression "(int)pEVar20 * 4" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(pcVar43 + 0x6affc)" * (cast_expression "(int *)(pcVar43 + 0x6affc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar43 + 0x6affc)" ( (binary_expression "pcVar43 + 0x6affc" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "(ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar29->e_ident_magic_num;" (assignment_expression "(ptVar16[1].next)->next = *(tmp_reentrant_t **)&pEVar29->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 **)&pEVar29->e_ident_magic_num" * (cast_expression "(tmp_reentrant_t **)&pEVar29->e_ident_magic_num" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar29->e_ident_magic_num" & (field_expression "pEVar29->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 "ptVar33 = ptVar16;" (assignment_expression "ptVar33 = ptVar16" identifier = identifier) ;) (expression_statement "pEVar30 = pEVar20;" (assignment_expression "pEVar30 = pEVar20" identifier = identifier) ;) (expression_statement "pEVar20 = pEVar29;" (assignment_expression "pEVar20 = pEVar29" 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) == *piVar7) {\n    return;\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;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar43 = *(code **)(pcVar38 + -0x7b70);" (assignment_expression "pcVar43 = *(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 "pcVar45 = __gmpz_probab_prime_p;" (assignment_expression "pcVar45 = __gmpz_probab_prime_p" identifier = identifier) ;) (expression_statement "(*pcVar43)();" (call_expression "(*pcVar43)()" (parenthesized_expression "(*pcVar43)" ( (pointer_expression "*pcVar43" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar38 = *(code **)(pcVar43 + 0x6ae78);" (assignment_expression "pcVar38 = *(code **)(pcVar43 + 0x6ae78)" identifier = (pointer_expression "*(code **)(pcVar43 + 0x6ae78)" * (cast_expression "(code **)(pcVar43 + 0x6ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar43 + 0x6ae78)" ( (binary_expression "pcVar43 + 0x6ae78" 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) = piVar7;" (assignment_expression "*(int **)(puVar41 + -0x20) = piVar7" (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 "piVar7 = *(int **)(pcVar43 + 0x6b270);" (assignment_expression "piVar7 = *(int **)(pcVar43 + 0x6b270)" identifier = (pointer_expression "*(int **)(pcVar43 + 0x6b270)" * (cast_expression "(int **)(pcVar43 + 0x6b270)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar43 + 0x6b270)" ( (binary_expression "pcVar43 + 0x6b270" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar41 + -0x18) = pEVar22;" (assignment_expression "*(Elf32_Ehdr **)(puVar41 + -0x18) = pEVar22" (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 "pEVar22 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar22 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code **)(puVar41 + -0x88) = pcVar43 + 0x72d70;" (assignment_expression "*(code **)(puVar41 + -0x88) = pcVar43 + 0x72d70" (pointer_expression "*(code **)(puVar41 + -0x88)" * (cast_expression "(code **)(puVar41 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0x88)" ( (binary_expression "puVar41 + -0x88" identifier + number_literal) )))) = (binary_expression "pcVar43 + 0x72d70" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar41 + -0x10) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar41 + -0x10) = pEVar34" (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) = pcVar45;" (assignment_expression "*(code **)(puVar41 + -4) = pcVar45" (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) = *piVar7;" (assignment_expression "*(int *)(puVar41 + -0x2c) = *piVar7" (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 "*piVar7" * identifier)) ;) (expression_statement "iVar14 = (*pcVar38)();" (assignment_expression "iVar14 = (*pcVar38)()" identifier = (call_expression "(*pcVar38)()" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "ptVar35 = ptVar33[1].next;" (assignment_expression "ptVar35 = ptVar33[1].next" identifier = (field_expression "ptVar33[1].next" (subscript_expression "ptVar33[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar15 = *(int *)(puVar41 + -0x88);" (assignment_expression "iVar15 = *(int *)(puVar41 + -0x88)" identifier = (pointer_expression "*(int *)(puVar41 + -0x88)" * (cast_expression "(int *)(puVar41 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x88)" ( (binary_expression "puVar41 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar34 = (Elf32_Ehdr *)ptVar33->size;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)ptVar33->size" identifier = (cast_expression "(Elf32_Ehdr *)ptVar33->size" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "ptVar33->size" identifier -> field_identifier))) ;) (expression_statement "ptVar16 = ptVar35->next;" (assignment_expression "ptVar16 = ptVar35->next" identifier = (field_expression "ptVar35->next" identifier -> field_identifier)) ;) (if_statement "if (iVar14 < 1) {\n    pEVar22 = (Elf32_Ehdr *)0xf4240;\n    iVar14 = (**(code **)(iVar15 + -0x7ab4))(ptVar33);\n    iVar15 = *(int *)(puVar41 + -0x88);\n    if (iVar14 < 1) {\n      if ((pEVar34 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar47 = 3;\n        while (uVar18 != 0) {\n          if (uVar47 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar47;\n          if ((uint)ptVar16 / uVar47 < uVar47) break;\n          uVar47 = uVar47 + 2;\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar35;\n    ptVar33 = (tmp_reentrant_t *)(puVar41 + -0x74);\n    *(Elf32_Ehdr **)(puVar41 + -0x70) = pEVar34;\n  }" if (parenthesized_expression "(iVar14 < 1)" ( (binary_expression "iVar14 < 1" identifier < number_literal) )) (compound_statement "{\n    pEVar22 = (Elf32_Ehdr *)0xf4240;\n    iVar14 = (**(code **)(iVar15 + -0x7ab4))(ptVar33);\n    iVar15 = *(int *)(puVar41 + -0x88);\n    if (iVar14 < 1) {\n      if ((pEVar34 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar47 = 3;\n        while (uVar18 != 0) {\n          if (uVar47 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar47;\n          if ((uint)ptVar16 / uVar47 < uVar47) break;\n          uVar47 = uVar47 + 2;\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar34;\n    *(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar35;\n    ptVar33 = (tmp_reentrant_t *)(puVar41 + -0x74);\n    *(Elf32_Ehdr **)(puVar41 + -0x70) = pEVar34;\n  }" { (expression_statement "pEVar22 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar22 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar14 = (**(code **)(iVar15 + -0x7ab4))(ptVar33);" (assignment_expression "iVar14 = (**(code **)(iVar15 + -0x7ab4))(ptVar33)" identifier = (call_expression "(**(code **)(iVar15 + -0x7ab4))(ptVar33)" (parenthesized_expression "(**(code **)(iVar15 + -0x7ab4))" ( (pointer_expression "**(code **)(iVar15 + -0x7ab4)" * (pointer_expression "*(code **)(iVar15 + -0x7ab4)" * (cast_expression "(code **)(iVar15 + -0x7ab4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7ab4)" ( (binary_expression "iVar15 + -0x7ab4" identifier + number_literal) ))))) )) (argument_list "(ptVar33)" ( identifier )))) ;) (expression_statement "iVar15 = *(int *)(puVar41 + -0x88);" (assignment_expression "iVar15 = *(int *)(puVar41 + -0x88)" identifier = (pointer_expression "*(int *)(puVar41 + -0x88)" * (cast_expression "(int *)(puVar41 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x88)" ( (binary_expression "puVar41 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (iVar14 < 1) {\n      if ((pEVar34 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar47 = 3;\n        while (uVar18 != 0) {\n          if (uVar47 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar47;\n          if ((uint)ptVar16 / uVar47 < uVar47) break;\n          uVar47 = uVar47 + 2;\n        }\n      }\n      goto LAB_00032354;\n    }" if (parenthesized_expression "(iVar14 < 1)" ( (binary_expression "iVar14 < 1" identifier < number_literal) )) (compound_statement "{\n      if ((pEVar34 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar47 = 3;\n        while (uVar18 != 0) {\n          if (uVar47 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar47;\n          if ((uint)ptVar16 / uVar47 < uVar47) break;\n          uVar47 = uVar47 + 2;\n        }\n      }\n      goto LAB_00032354;\n    }" { (if_statement "if ((pEVar34 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)) {\n        uVar47 = 3;\n        while (uVar18 != 0) {\n          if (uVar47 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar47;\n          if ((uint)ptVar16 / uVar47 < uVar47) break;\n          uVar47 = uVar47 + 2;\n        }\n      }" if (parenthesized_expression "((pEVar34 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16))" ( (binary_expression "(pEVar34 != (Elf32_Ehdr *)0x0) &&\n         (uVar18 = (uint)ptVar16 & 1, (tmp_reentrant_t *)0x2 < ptVar16)" (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)) )) && (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        uVar47 = 3;\n        while (uVar18 != 0) {\n          if (uVar47 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar47;\n          if ((uint)ptVar16 / uVar47 < uVar47) break;\n          uVar47 = uVar47 + 2;\n        }\n      }" { (expression_statement "uVar47 = 3;" (assignment_expression "uVar47 = 3" identifier = number_literal) ;) (while_statement "while (uVar18 != 0) {\n          if (uVar47 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar47;\n          if ((uint)ptVar16 / uVar47 < uVar47) break;\n          uVar47 = uVar47 + 2;\n        }" while (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (compound_statement "{\n          if (uVar47 == 0) {\n            trap(7);\n          }\n          uVar18 = (uint)ptVar16 % uVar47;\n          if ((uint)ptVar16 / uVar47 < uVar47) break;\n          uVar47 = uVar47 + 2;\n        }" { (if_statement "if (uVar47 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar47 == 0)" ( (binary_expression "uVar47 == 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 % uVar47;" (assignment_expression "uVar18 = (uint)ptVar16 % uVar47" identifier = (binary_expression "(uint)ptVar16 % uVar47" (cast_expression "(uint)ptVar16" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier)) ;) (if_statement "if ((uint)ptVar16 / uVar47 < uVar47) break;" if (parenthesized_expression "((uint)ptVar16 / uVar47 < uVar47)" ( (binary_expression "(uint)ptVar16 / uVar47 < uVar47" (binary_expression "(uint)ptVar16 / uVar47" (cast_expression "(uint)ptVar16" ( (type_descriptor "uint" type_identifier) ) identifier) / identifier) < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar47 = uVar47 + 2;" (assignment_expression "uVar47 = uVar47 + 2" identifier = (binary_expression "uVar47 + 2" identifier + number_literal)) ;) })) })) (goto_statement "goto LAB_00032354;" 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 "*(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar35;" (assignment_expression "*(tmp_reentrant_t **)(puVar41 + -0x6c) = ptVar35" (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 "ptVar33 = (tmp_reentrant_t *)(puVar41 + -0x74);" (assignment_expression "ptVar33 = (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) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar41 + -0x70) = pEVar34" (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 ((pEVar34 != (Elf32_Ehdr *)0x0) && (uVar18 = (uint)ptVar16 & 1, uVar18 != 0)) {\n    pEVar22 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar47 = (**(code **)(iVar15 + -0x7c24))(ptVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar41 + -0x88);\n    }\n    else {\n      uVar47 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x88);\n    }\n    if ((((((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)) &&\n          (uVar47 != (uVar47 / 7) * 7)) &&\n         ((uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd)))) &&\n        ((uVar47 != (uVar47 / 0x11) * 0x11 &&\n         ((uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17)))))) &&\n       (uVar47 != (uVar47 / 0x1d) * 0x1d)) {\n      uVar47 = (**(code **)(iVar15 + -0x7f14))(ptVar33,2);\n      iVar15 = *(int *)(puVar41 + -0x88);\n      if (0x1f < uVar47) {\n        iVar42 = 0;\n        iVar14 = 0;\n        uVar48 = 0x1f;\n        do {\n          uVar12 = 3;\n          do {\n            if (uVar12 == 0) {\n              trap(7);\n            }\n            uVar46 = uVar48 % uVar12;\n            if (uVar48 / uVar12 < uVar12) {\n              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;\n              break;\n            }\n            uVar12 = uVar12 + 2;\n            iVar28 = iVar14;\n          } while (uVar46 != 0);\n          uVar12 = uVar48 + 2;\n          iVar42 = (uint)(uVar12 < uVar48) + iVar42;\n          iVar14 = iVar28;\n          uVar48 = uVar12;\n        } while (uVar12 < uVar47);\n      }\n      (**(code **)(iVar15 + -0x7d48))(ptVar33);\n      iVar15 = *(int *)(puVar41 + -0x88);\n      pEVar22 = pEVar30;\n    }\n  }" if (parenthesized_expression "((pEVar34 != (Elf32_Ehdr *)0x0) && (uVar18 = (uint)ptVar16 & 1, uVar18 != 0))" ( (binary_expression "(pEVar34 != (Elf32_Ehdr *)0x0) && (uVar18 = (uint)ptVar16 & 1, uVar18 != 0)" (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)) )) && (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    pEVar22 = pEVar34;\n    if ((int)pEVar34 < 10) {\n      uVar47 = (**(code **)(iVar15 + -0x7c24))(ptVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar41 + -0x88);\n    }\n    else {\n      uVar47 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x88);\n    }\n    if ((((((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)) &&\n          (uVar47 != (uVar47 / 7) * 7)) &&\n         ((uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd)))) &&\n        ((uVar47 != (uVar47 / 0x11) * 0x11 &&\n         ((uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17)))))) &&\n       (uVar47 != (uVar47 / 0x1d) * 0x1d)) {\n      uVar47 = (**(code **)(iVar15 + -0x7f14))(ptVar33,2);\n      iVar15 = *(int *)(puVar41 + -0x88);\n      if (0x1f < uVar47) {\n        iVar42 = 0;\n        iVar14 = 0;\n        uVar48 = 0x1f;\n        do {\n          uVar12 = 3;\n          do {\n            if (uVar12 == 0) {\n              trap(7);\n            }\n            uVar46 = uVar48 % uVar12;\n            if (uVar48 / uVar12 < uVar12) {\n              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;\n              break;\n            }\n            uVar12 = uVar12 + 2;\n            iVar28 = iVar14;\n          } while (uVar46 != 0);\n          uVar12 = uVar48 + 2;\n          iVar42 = (uint)(uVar12 < uVar48) + iVar42;\n          iVar14 = iVar28;\n          uVar48 = uVar12;\n        } while (uVar12 < uVar47);\n      }\n      (**(code **)(iVar15 + -0x7d48))(ptVar33);\n      iVar15 = *(int *)(puVar41 + -0x88);\n      pEVar22 = pEVar30;\n    }\n  }" { (expression_statement "pEVar22 = pEVar34;" (assignment_expression "pEVar22 = pEVar34" identifier = identifier) ;) (if_statement "if ((int)pEVar34 < 10) {\n      uVar47 = (**(code **)(iVar15 + -0x7c24))(ptVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar41 + -0x88);\n    }\n    else {\n      uVar47 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x88);\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      uVar47 = (**(code **)(iVar15 + -0x7c24))(ptVar35,pEVar34,0xc0cfd797,0x53e5645c);\n      iVar15 = *(int *)(puVar41 + -0x88);\n    }" { (expression_statement "uVar47 = (**(code **)(iVar15 + -0x7c24))(ptVar35,pEVar34,0xc0cfd797,0x53e5645c);" (assignment_expression "uVar47 = (**(code **)(iVar15 + -0x7c24))(ptVar35,pEVar34,0xc0cfd797,0x53e5645c)" identifier = (call_expression "(**(code **)(iVar15 + -0x7c24))(ptVar35,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 "(ptVar35,pEVar34,0xc0cfd797,0x53e5645c)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar15 = *(int *)(puVar41 + -0x88);" (assignment_expression "iVar15 = *(int *)(puVar41 + -0x88)" identifier = (pointer_expression "*(int *)(puVar41 + -0x88)" * (cast_expression "(int *)(puVar41 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x88)" ( (binary_expression "puVar41 + -0x88" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar47 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x88);\n    }" else (compound_statement "{\n      uVar47 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,0xc0cfd797);\n      iVar15 = *(int *)(puVar41 + -0x88);\n    }" { (expression_statement "uVar47 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,0xc0cfd797);" (assignment_expression "uVar47 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,0xc0cfd797)" identifier = (call_expression "(**(code **)(iVar15 + -0x7b80))(ptVar35,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 "(ptVar35,pEVar34,0xc0cfd797)" ( identifier , identifier , number_literal )))) ;) (expression_statement "iVar15 = *(int *)(puVar41 + -0x88);" (assignment_expression "iVar15 = *(int *)(puVar41 + -0x88)" identifier = (pointer_expression "*(int *)(puVar41 + -0x88)" * (cast_expression "(int *)(puVar41 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x88)" ( (binary_expression "puVar41 + -0x88" identifier + number_literal) ))))) ;) }))) (if_statement "if ((((((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)) &&\n          (uVar47 != (uVar47 / 7) * 7)) &&\n         ((uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd)))) &&\n        ((uVar47 != (uVar47 / 0x11) * 0x11 &&\n         ((uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17)))))) &&\n       (uVar47 != (uVar47 / 0x1d) * 0x1d)) {\n      uVar47 = (**(code **)(iVar15 + -0x7f14))(ptVar33,2);\n      iVar15 = *(int *)(puVar41 + -0x88);\n      if (0x1f < uVar47) {\n        iVar42 = 0;\n        iVar14 = 0;\n        uVar48 = 0x1f;\n        do {\n          uVar12 = 3;\n          do {\n            if (uVar12 == 0) {\n              trap(7);\n            }\n            uVar46 = uVar48 % uVar12;\n            if (uVar48 / uVar12 < uVar12) {\n              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;\n              break;\n            }\n            uVar12 = uVar12 + 2;\n            iVar28 = iVar14;\n          } while (uVar46 != 0);\n          uVar12 = uVar48 + 2;\n          iVar42 = (uint)(uVar12 < uVar48) + iVar42;\n          iVar14 = iVar28;\n          uVar48 = uVar12;\n        } while (uVar12 < uVar47);\n      }\n      (**(code **)(iVar15 + -0x7d48))(ptVar33);\n      iVar15 = *(int *)(puVar41 + -0x88);\n      pEVar22 = pEVar30;\n    }" if (parenthesized_expression "((((((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)) &&\n          (uVar47 != (uVar47 / 7) * 7)) &&\n         ((uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd)))) &&\n        ((uVar47 != (uVar47 / 0x11) * 0x11 &&\n         ((uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17)))))) &&\n       (uVar47 != (uVar47 / 0x1d) * 0x1d))" ( (binary_expression "(((((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)) &&\n          (uVar47 != (uVar47 / 7) * 7)) &&\n         ((uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd)))) &&\n        ((uVar47 != (uVar47 / 0x11) * 0x11 &&\n         ((uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17)))))) &&\n       (uVar47 != (uVar47 / 0x1d) * 0x1d)" (parenthesized_expression "(((((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)) &&\n          (uVar47 != (uVar47 / 7) * 7)) &&\n         ((uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd)))) &&\n        ((uVar47 != (uVar47 / 0x11) * 0x11 &&\n         ((uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17))))))" ( (binary_expression "((((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)) &&\n          (uVar47 != (uVar47 / 7) * 7)) &&\n         ((uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd)))) &&\n        ((uVar47 != (uVar47 / 0x11) * 0x11 &&\n         ((uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17)))))" (parenthesized_expression "((((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)) &&\n          (uVar47 != (uVar47 / 7) * 7)) &&\n         ((uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd))))" ( (binary_expression "(((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)) &&\n          (uVar47 != (uVar47 / 7) * 7)) &&\n         ((uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd)))" (parenthesized_expression "(((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)) &&\n          (uVar47 != (uVar47 / 7) * 7))" ( (binary_expression "((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)) &&\n          (uVar47 != (uVar47 / 7) * 7)" (parenthesized_expression "((uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5))" ( (binary_expression "(uVar47 != (uVar47 / 3) * 3) && (uVar47 != (uVar47 / 5) * 5)" (parenthesized_expression "(uVar47 != (uVar47 / 3) * 3)" ( (binary_expression "uVar47 != (uVar47 / 3) * 3" identifier != (binary_expression "(uVar47 / 3) * 3" (parenthesized_expression "(uVar47 / 3)" ( (binary_expression "uVar47 / 3" identifier / number_literal) )) * number_literal)) )) && (parenthesized_expression "(uVar47 != (uVar47 / 5) * 5)" ( (binary_expression "uVar47 != (uVar47 / 5) * 5" identifier != (binary_expression "(uVar47 / 5) * 5" (parenthesized_expression "(uVar47 / 5)" ( (binary_expression "uVar47 / 5" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "(uVar47 != (uVar47 / 7) * 7)" ( (binary_expression "uVar47 != (uVar47 / 7) * 7" identifier != (binary_expression "(uVar47 / 7) * 7" (parenthesized_expression "(uVar47 / 7)" ( (binary_expression "uVar47 / 7" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "((uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd)))" ( (parenthesized_expression "(uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd))" ( (binary_expression "uVar47 != (uVar47 / 0xb) * 0xb && (uVar47 != (uVar47 / 0xd) * 0xd)" (binary_expression "uVar47 != (uVar47 / 0xb) * 0xb" identifier != (binary_expression "(uVar47 / 0xb) * 0xb" (parenthesized_expression "(uVar47 / 0xb)" ( (binary_expression "uVar47 / 0xb" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar47 != (uVar47 / 0xd) * 0xd)" ( (binary_expression "uVar47 != (uVar47 / 0xd) * 0xd" identifier != (binary_expression "(uVar47 / 0xd) * 0xd" (parenthesized_expression "(uVar47 / 0xd)" ( (binary_expression "uVar47 / 0xd" identifier / number_literal) )) * number_literal)) ))) )) ))) )) && (parenthesized_expression "((uVar47 != (uVar47 / 0x11) * 0x11 &&\n         ((uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17)))))" ( (parenthesized_expression "(uVar47 != (uVar47 / 0x11) * 0x11 &&\n         ((uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17))))" ( (binary_expression "uVar47 != (uVar47 / 0x11) * 0x11 &&\n         ((uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17)))" (binary_expression "uVar47 != (uVar47 / 0x11) * 0x11" identifier != (binary_expression "(uVar47 / 0x11) * 0x11" (parenthesized_expression "(uVar47 / 0x11)" ( (binary_expression "uVar47 / 0x11" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "((uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17)))" ( (parenthesized_expression "(uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17))" ( (binary_expression "uVar47 != (uVar47 / 0x13) * 0x13 && (uVar47 != (uVar47 / 0x17) * 0x17)" (binary_expression "uVar47 != (uVar47 / 0x13) * 0x13" identifier != (binary_expression "(uVar47 / 0x13) * 0x13" (parenthesized_expression "(uVar47 / 0x13)" ( (binary_expression "uVar47 / 0x13" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar47 != (uVar47 / 0x17) * 0x17)" ( (binary_expression "uVar47 != (uVar47 / 0x17) * 0x17" identifier != (binary_expression "(uVar47 / 0x17) * 0x17" (parenthesized_expression "(uVar47 / 0x17)" ( (binary_expression "uVar47 / 0x17" identifier / number_literal) )) * number_literal)) ))) )) ))) )) ))) )) && (parenthesized_expression "(uVar47 != (uVar47 / 0x1d) * 0x1d)" ( (binary_expression "uVar47 != (uVar47 / 0x1d) * 0x1d" identifier != (binary_expression "(uVar47 / 0x1d) * 0x1d" (parenthesized_expression "(uVar47 / 0x1d)" ( (binary_expression "uVar47 / 0x1d" identifier / number_literal) )) * number_literal)) ))) )) (compound_statement "{\n      uVar47 = (**(code **)(iVar15 + -0x7f14))(ptVar33,2);\n      iVar15 = *(int *)(puVar41 + -0x88);\n      if (0x1f < uVar47) {\n        iVar42 = 0;\n        iVar14 = 0;\n        uVar48 = 0x1f;\n        do {\n          uVar12 = 3;\n          do {\n            if (uVar12 == 0) {\n              trap(7);\n            }\n            uVar46 = uVar48 % uVar12;\n            if (uVar48 / uVar12 < uVar12) {\n              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;\n              break;\n            }\n            uVar12 = uVar12 + 2;\n            iVar28 = iVar14;\n          } while (uVar46 != 0);\n          uVar12 = uVar48 + 2;\n          iVar42 = (uint)(uVar12 < uVar48) + iVar42;\n          iVar14 = iVar28;\n          uVar48 = uVar12;\n        } while (uVar12 < uVar47);\n      }\n      (**(code **)(iVar15 + -0x7d48))(ptVar33);\n      iVar15 = *(int *)(puVar41 + -0x88);\n      pEVar22 = pEVar30;\n    }" { (expression_statement "uVar47 = (**(code **)(iVar15 + -0x7f14))(ptVar33,2);" (assignment_expression "uVar47 = (**(code **)(iVar15 + -0x7f14))(ptVar33,2)" identifier = (call_expression "(**(code **)(iVar15 + -0x7f14))(ptVar33,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 "(ptVar33,2)" ( identifier , number_literal )))) ;) (expression_statement "iVar15 = *(int *)(puVar41 + -0x88);" (assignment_expression "iVar15 = *(int *)(puVar41 + -0x88)" identifier = (pointer_expression "*(int *)(puVar41 + -0x88)" * (cast_expression "(int *)(puVar41 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x88)" ( (binary_expression "puVar41 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (0x1f < uVar47) {\n        iVar42 = 0;\n        iVar14 = 0;\n        uVar48 = 0x1f;\n        do {\n          uVar12 = 3;\n          do {\n            if (uVar12 == 0) {\n              trap(7);\n            }\n            uVar46 = uVar48 % uVar12;\n            if (uVar48 / uVar12 < uVar12) {\n              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;\n              break;\n            }\n            uVar12 = uVar12 + 2;\n            iVar28 = iVar14;\n          } while (uVar46 != 0);\n          uVar12 = uVar48 + 2;\n          iVar42 = (uint)(uVar12 < uVar48) + iVar42;\n          iVar14 = iVar28;\n          uVar48 = uVar12;\n        } while (uVar12 < uVar47);\n      }" if (parenthesized_expression "(0x1f < uVar47)" ( (binary_expression "0x1f < uVar47" number_literal < identifier) )) (compound_statement "{\n        iVar42 = 0;\n        iVar14 = 0;\n        uVar48 = 0x1f;\n        do {\n          uVar12 = 3;\n          do {\n            if (uVar12 == 0) {\n              trap(7);\n            }\n            uVar46 = uVar48 % uVar12;\n            if (uVar48 / uVar12 < uVar12) {\n              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;\n              break;\n            }\n            uVar12 = uVar12 + 2;\n            iVar28 = iVar14;\n          } while (uVar46 != 0);\n          uVar12 = uVar48 + 2;\n          iVar42 = (uint)(uVar12 < uVar48) + iVar42;\n          iVar14 = iVar28;\n          uVar48 = uVar12;\n        } while (uVar12 < uVar47);\n      }" { (expression_statement "iVar42 = 0;" (assignment_expression "iVar42 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar48 = 0x1f;" (assignment_expression "uVar48 = 0x1f" identifier = number_literal) ;) (do_statement "do {\n          uVar12 = 3;\n          do {\n            if (uVar12 == 0) {\n              trap(7);\n            }\n            uVar46 = uVar48 % uVar12;\n            if (uVar48 / uVar12 < uVar12) {\n              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;\n              break;\n            }\n            uVar12 = uVar12 + 2;\n            iVar28 = iVar14;\n          } while (uVar46 != 0);\n          uVar12 = uVar48 + 2;\n          iVar42 = (uint)(uVar12 < uVar48) + iVar42;\n          iVar14 = iVar28;\n          uVar48 = uVar12;\n        } while (uVar12 < uVar47);" do (compound_statement "{\n          uVar12 = 3;\n          do {\n            if (uVar12 == 0) {\n              trap(7);\n            }\n            uVar46 = uVar48 % uVar12;\n            if (uVar48 / uVar12 < uVar12) {\n              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;\n              break;\n            }\n            uVar12 = uVar12 + 2;\n            iVar28 = iVar14;\n          } while (uVar46 != 0);\n          uVar12 = uVar48 + 2;\n          iVar42 = (uint)(uVar12 < uVar48) + iVar42;\n          iVar14 = iVar28;\n          uVar48 = uVar12;\n        }" { (expression_statement "uVar12 = 3;" (assignment_expression "uVar12 = 3" identifier = number_literal) ;) (do_statement "do {\n            if (uVar12 == 0) {\n              trap(7);\n            }\n            uVar46 = uVar48 % uVar12;\n            if (uVar48 / uVar12 < uVar12) {\n              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;\n              break;\n            }\n            uVar12 = uVar12 + 2;\n            iVar28 = iVar14;\n          } while (uVar46 != 0);" do (compound_statement "{\n            if (uVar12 == 0) {\n              trap(7);\n            }\n            uVar46 = uVar48 % uVar12;\n            if (uVar48 / uVar12 < uVar12) {\n              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;\n              break;\n            }\n            uVar12 = uVar12 + 2;\n            iVar28 = iVar14;\n          }" { (if_statement "if (uVar12 == 0) {\n              trap(7);\n            }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 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 "uVar46 = uVar48 % uVar12;" (assignment_expression "uVar46 = uVar48 % uVar12" identifier = (binary_expression "uVar48 % uVar12" identifier % identifier)) ;) (if_statement "if (uVar48 / uVar12 < uVar12) {\n              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;\n              break;\n            }" if (parenthesized_expression "(uVar48 / uVar12 < uVar12)" ( (binary_expression "uVar48 / uVar12 < uVar12" (binary_expression "uVar48 / uVar12" identifier / identifier) < identifier) )) (compound_statement "{\n              if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;\n              break;\n            }" { (if_statement "if (iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0) {\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }\n              else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }" if (parenthesized_expression "(iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0)" ( (binary_expression "iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20) == 0" (binary_expression "iVar42 * uVar18 + (int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20)" (binary_expression "iVar42 * uVar18" identifier * identifier) + (cast_expression "(int)((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20)" ( (binary_expression "(ulonglong)uVar18 * (ulonglong)uVar48 >> 0x20" (binary_expression "(ulonglong)uVar18 * (ulonglong)uVar48" (cast_expression "(ulonglong)uVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) )))) == number_literal) )) (compound_statement "{\n                iVar28 = iVar14 + 1;\n                uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);\n              }" { (expression_statement "iVar28 = iVar14 + 1;" (assignment_expression "iVar28 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48);" (assignment_expression "uVar18 = (uint)((ulonglong)uVar18 * (ulonglong)uVar48)" identifier = (call_expression "(uint)((ulonglong)uVar18 * (ulonglong)uVar48)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar18 * (ulonglong)uVar48)" ( (binary_expression "(ulonglong)uVar18 * (ulonglong)uVar48" (cast_expression "(ulonglong)uVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ;) }) (else_clause "else {\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }" else (compound_statement "{\n                *(uint *)(puVar41 + -0x7c) = uVar47;\n                *(int *)(puVar41 + -0x80) = iVar14;\n                if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }\n                uVar18 = uVar48;\n                if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar28 = 1;\n                iVar14 = 0;\n              }" { (expression_statement "*(uint *)(puVar41 + -0x7c) = uVar47;" (assignment_expression "*(uint *)(puVar41 + -0x7c) = uVar47" (pointer_expression "*(uint *)(puVar41 + -0x7c)" * (cast_expression "(uint *)(puVar41 + -0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x7c)" ( (binary_expression "puVar41 + -0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar41 + -0x80) = iVar14;" (assignment_expression "*(int *)(puVar41 + -0x80) = iVar14" (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) ;) (if_statement "if ((int)pEVar34 < 10) {\n                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }\n                else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\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                  uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                }" { (expression_statement "uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0);" (assignment_expression "uVar12 = (**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0)" identifier = (call_expression "(**(code **)(iVar15 + -0x7c68))(ptVar35,pEVar34,uVar18,0)" (parenthesized_expression "(**(code **)(iVar15 + -0x7c68))" ( (pointer_expression "**(code **)(iVar15 + -0x7c68)" * (pointer_expression "*(code **)(iVar15 + -0x7c68)" * (cast_expression "(code **)(iVar15 + -0x7c68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7c68)" ( (binary_expression "iVar15 + -0x7c68" identifier + number_literal) ))))) )) (argument_list "(ptVar35,pEVar34,uVar18,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar15 = *(int *)(puVar41 + -0x88);" (assignment_expression "iVar15 = *(int *)(puVar41 + -0x88)" identifier = (pointer_expression "*(int *)(puVar41 + -0x88)" * (cast_expression "(int *)(puVar41 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x88)" ( (binary_expression "puVar41 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = *(int *)(puVar41 + -0x80);" (assignment_expression "iVar14 = *(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 "uVar47 = *(uint *)(puVar41 + -0x7c);" (assignment_expression "uVar47 = *(uint *)(puVar41 + -0x7c)" identifier = (pointer_expression "*(uint *)(puVar41 + -0x7c)" * (cast_expression "(uint *)(puVar41 + -0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x7c)" ( (binary_expression "puVar41 + -0x7c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }" else (compound_statement "{\n                  uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  uVar47 = *(uint *)(puVar41 + -0x7c);\n                  iVar14 = *(int *)(puVar41 + -0x80);\n                }" { (expression_statement "uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18);" (assignment_expression "uVar12 = (**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18)" identifier = (call_expression "(**(code **)(iVar15 + -0x7b80))(ptVar35,pEVar34,uVar18)" (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 "(ptVar35,pEVar34,uVar18)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar15 = *(int *)(puVar41 + -0x88);" (assignment_expression "iVar15 = *(int *)(puVar41 + -0x88)" identifier = (pointer_expression "*(int *)(puVar41 + -0x88)" * (cast_expression "(int *)(puVar41 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x88)" ( (binary_expression "puVar41 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar47 = *(uint *)(puVar41 + -0x7c);" (assignment_expression "uVar47 = *(uint *)(puVar41 + -0x7c)" identifier = (pointer_expression "*(uint *)(puVar41 + -0x7c)" * (cast_expression "(uint *)(puVar41 + -0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x7c)" ( (binary_expression "puVar41 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = *(int *)(puVar41 + -0x80);" (assignment_expression "iVar14 = *(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 "uVar18 = uVar48;" (assignment_expression "uVar18 = uVar48" identifier = identifier) ;) (if_statement "if (iVar14 + -1 != -1) {\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }" if (parenthesized_expression "(iVar14 + -1 != -1)" ( (binary_expression "iVar14 + -1 != -1" (binary_expression "iVar14 + -1" identifier + number_literal) != number_literal) )) (compound_statement "{\n                  if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar22 = pEVar34;\n                  iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);\n                  iVar15 = *(int *)(puVar41 + -0x88);\n                  if (iVar14 == 0) goto LAB_00032354;\n                  (**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);\n                }" { (if_statement "if (*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }" if (parenthesized_expression "(*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -1) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -1) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -1) * 4" identifier + (binary_expression "(iVar14 + -1) * 4" (parenthesized_expression "(iVar14 + -1)" ( (binary_expression "iVar14 + -1" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    trap(7);\n                  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0) {\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0)" ( (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68) != 0" (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -1) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -1) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -1) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -1) * 4" identifier + (binary_expression "(iVar14 + -1) * 4" (parenthesized_expression "(iVar14 + -1)" ( (binary_expression "iVar14 + -1" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                    if (iVar14 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" { (if_statement "if (iVar14 + -2 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar14 + -2 == -1)" ( (binary_expression "iVar14 + -2 == -1" (binary_expression "iVar14 + -2" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }" if (parenthesized_expression "(*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -2) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -2) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -2) * 4" identifier + (binary_expression "(iVar14 + -2) * 4" (parenthesized_expression "(iVar14 + -2)" ( (binary_expression "iVar14 + -2" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                      trap(7);\n                    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0) {\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0)" ( (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68) != 0" (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -2) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -2) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -2) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -2) * 4" identifier + (binary_expression "(iVar14 + -2) * 4" (parenthesized_expression "(iVar14 + -2)" ( (binary_expression "iVar14 + -2" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                      if (iVar14 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" { (if_statement "if (iVar14 + -3 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar14 + -3 == -1)" ( (binary_expression "iVar14 + -3 == -1" (binary_expression "iVar14 + -3" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }" if (parenthesized_expression "(*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -3) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -3) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -3) * 4" identifier + (binary_expression "(iVar14 + -3) * 4" (parenthesized_expression "(iVar14 + -3)" ( (binary_expression "iVar14 + -3" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                        trap(7);\n                      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0) {\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" if (parenthesized_expression "(uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0)" ( (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68) != 0" (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -3) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -3) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -3) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -3) * 4" identifier + (binary_expression "(iVar14 + -3) * 4" (parenthesized_expression "(iVar14 + -3)" ( (binary_expression "iVar14 + -3" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                        if (iVar14 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" { (if_statement "if (iVar14 + -4 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar14 + -4 == -1)" ( (binary_expression "iVar14 + -4 == -1" (binary_expression "iVar14 + -4" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }" if (parenthesized_expression "(*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -4) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -4) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -4) * 4" identifier + (binary_expression "(iVar14 + -4) * 4" (parenthesized_expression "(iVar14 + -4)" ( (binary_expression "iVar14 + -4" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                          trap(7);\n                        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0) {\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" if (parenthesized_expression "(uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0)" ( (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68) != 0" (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -4) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -4) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -4) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -4) * 4" identifier + (binary_expression "(iVar14 + -4) * 4" (parenthesized_expression "(iVar14 + -4)" ( (binary_expression "iVar14 + -4" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                          if (iVar14 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" { (if_statement "if (iVar14 + -5 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar14 + -5 == -1)" ( (binary_expression "iVar14 + -5 == -1" (binary_expression "iVar14 + -5" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }" if (parenthesized_expression "(*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -5) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -5) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -5) * 4" identifier + (binary_expression "(iVar14 + -5) * 4" (parenthesized_expression "(iVar14 + -5)" ( (binary_expression "iVar14 + -5" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                            trap(7);\n                          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0) {\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" if (parenthesized_expression "(uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0)" ( (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68) != 0" (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -5) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -5) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -5) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -5) * 4" identifier + (binary_expression "(iVar14 + -5) * 4" (parenthesized_expression "(iVar14 + -5)" ( (binary_expression "iVar14 + -5" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                            if (iVar14 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" { (if_statement "if (iVar14 + -6 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar14 + -6 == -1)" ( (binary_expression "iVar14 + -6 == -1" (binary_expression "iVar14 + -6" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }" if (parenthesized_expression "(*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -6) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -6) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -6) * 4" identifier + (binary_expression "(iVar14 + -6) * 4" (parenthesized_expression "(iVar14 + -6)" ( (binary_expression "iVar14 + -6" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                              trap(7);\n                            }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0) {\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }" if (parenthesized_expression "(uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0)" ( (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68) != 0" (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -6) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -6) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -6) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -6) * 4" identifier + (binary_expression "(iVar14 + -6) * 4" (parenthesized_expression "(iVar14 + -6)" ( (binary_expression "iVar14 + -6" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                              if (iVar14 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }" { (if_statement "if (iVar14 + -7 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar14 + -7 == -1)" ( (binary_expression "iVar14 + -7 == -1" (binary_expression "iVar14 + -7" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }" if (parenthesized_expression "(*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -7) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -7) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -7) * 4" identifier + (binary_expression "(iVar14 + -7) * 4" (parenthesized_expression "(iVar14 + -7)" ( (binary_expression "iVar14 + -7" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                trap(7);\n                              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0) {\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }" if (parenthesized_expression "(uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0)" ( (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68) != 0" (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -7) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -7) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -7) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -7) * 4" identifier + (binary_expression "(iVar14 + -7) * 4" (parenthesized_expression "(iVar14 + -7)" ( (binary_expression "iVar14 + -7" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                if (iVar14 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }" { (if_statement "if (iVar14 + -8 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar14 + -8 == -1)" ( (binary_expression "iVar14 + -8 == -1" (binary_expression "iVar14 + -8" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }" if (parenthesized_expression "(*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -8) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -8) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -8) * 4" identifier + (binary_expression "(iVar14 + -8) * 4" (parenthesized_expression "(iVar14 + -8)" ( (binary_expression "iVar14 + -8" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                  trap(7);\n                                }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }" if (parenthesized_expression "(uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0)" ( (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68) != 0" (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -8) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -8) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -8) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -8) * 4" identifier + (binary_expression "(iVar14 + -8) * 4" (parenthesized_expression "(iVar14 + -8)" ( (binary_expression "iVar14 + -8" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                  if (iVar14 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }" { (if_statement "if (iVar14 + -9 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar14 + -9 == -1)" ( (binary_expression "iVar14 + -9 == -1" (binary_expression "iVar14 + -9" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }" if (parenthesized_expression "(*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -9) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -9) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -9) * 4" identifier + (binary_expression "(iVar14 + -9) * 4" (parenthesized_expression "(iVar14 + -9)" ( (binary_expression "iVar14 + -9" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                    trap(7);\n                                  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)\n                                  {\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }" if (parenthesized_expression "(uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0)" ( (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68) != 0" (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -9) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -9) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -9) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -9) * 4" identifier + (binary_expression "(iVar14 + -9) * 4" (parenthesized_expression "(iVar14 + -9)" ( (binary_expression "iVar14 + -9" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                    if (iVar14 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }" { (if_statement "if (iVar14 + -10 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar14 + -10 == -1)" ( (binary_expression "iVar14 + -10 == -1" (binary_expression "iVar14 + -10" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }" if (parenthesized_expression "(*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -10) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -10) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -10) * 4" identifier + (binary_expression "(iVar14 + -10) * 4" (parenthesized_expression "(iVar14 + -10)" ( (binary_expression "iVar14 + -10" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                      trap(7);\n                                    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0) {\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }" if (parenthesized_expression "(uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0)" ( (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68) !=\n                                        0" (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -10) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -10) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -10) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -10) * 4" identifier + (binary_expression "(iVar14 + -10) * 4" (parenthesized_expression "(iVar14 + -10)" ( (binary_expression "iVar14 + -10" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                      if (iVar14 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }" { (if_statement "if (iVar14 + -0xb == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar14 + -0xb == -1)" ( (binary_expression "iVar14 + -0xb == -1" (binary_expression "iVar14 + -0xb" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }" if (parenthesized_expression "(*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -0xb) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -0xb) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -0xb) * 4" identifier + (binary_expression "(iVar14 + -0xb) * 4" (parenthesized_expression "(iVar14 + -0xb)" ( (binary_expression "iVar14 + -0xb" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                        trap(7);\n                                      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }" if (parenthesized_expression "(uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0)" ( (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)\n                                          != 0" (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -0xb) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -0xb) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -0xb) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -0xb) * 4" identifier + (binary_expression "(iVar14 + -0xb) * 4" (parenthesized_expression "(iVar14 + -0xb)" ( (binary_expression "iVar14 + -0xb" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                        if (iVar14 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }" { (if_statement "if (iVar14 + -0xc == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar14 + -0xc == -1)" ( (binary_expression "iVar14 + -0xc == -1" (binary_expression "iVar14 + -0xc" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }" if (parenthesized_expression "(*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -0xc) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -0xc) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -0xc) * 4" identifier + (binary_expression "(iVar14 + -0xc) * 4" (parenthesized_expression "(iVar14 + -0xc)" ( (binary_expression "iVar14 + -0xc" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                          trap(7);\n                                        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0) {\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }" if (parenthesized_expression "(uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0)" ( (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              ) != 0" (binary_expression "uVar12 % *(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              )" identifier % (pointer_expression "*(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              )" * (cast_expression "(uint *)(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              )" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -0xc) * 4 + -0x68\n                                                              )" ( (binary_expression "puVar41 + (iVar14 + -0xc) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -0xc) * 4" identifier + (binary_expression "(iVar14 + -0xc) * 4" (parenthesized_expression "(iVar14 + -0xc)" ( (binary_expression "iVar14 + -0xc" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                          if (iVar14 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }" { (if_statement "if (iVar14 + -0xd == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar14 + -0xd == -1)" ( (binary_expression "iVar14 + -0xd == -1" (binary_expression "iVar14 + -0xd" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }" if (parenthesized_expression "(*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -0xd) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -0xd) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -0xd) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -0xd) * 4" identifier + (binary_expression "(iVar14 + -0xd) * 4" (parenthesized_expression "(iVar14 + -0xd)" ( (binary_expression "iVar14 + -0xd" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                            trap(7);\n                                          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }" if (parenthesized_expression "(uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0)" ( (binary_expression "uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68) != 0" (binary_expression "uVar12 % *(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68)" ( (binary_expression "puVar41 +\n                                                                (iVar14 + -0xd) * 4 + -0x68" (binary_expression "puVar41 +\n                                                                (iVar14 + -0xd) * 4" identifier + (binary_expression "(iVar14 + -0xd) * 4" (parenthesized_expression "(iVar14 + -0xd)" ( (binary_expression "iVar14 + -0xd" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                            if (iVar14 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }" { (if_statement "if (iVar14 + -0xe == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar14 + -0xe == -1)" ( (binary_expression "iVar14 + -0xe == -1" (binary_expression "iVar14 + -0xe" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }" if (parenthesized_expression "(*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0)" ( (binary_expression "*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68) ==\n                                                0" (pointer_expression "*(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -0xe) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -0xe) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -0xe) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -0xe) * 4" identifier + (binary_expression "(iVar14 + -0xe) * 4" (parenthesized_expression "(iVar14 + -0xe)" ( (binary_expression "iVar14 + -0xe" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                              trap(7);\n                                            }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }" if (parenthesized_expression "(uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0)" ( (binary_expression "uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68) != 0" (binary_expression "uVar12 % *(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68)" ( (binary_expression "puVar41 +\n                                                                  (iVar14 + -0xe) * 4 + -0x68" (binary_expression "puVar41 +\n                                                                  (iVar14 + -0xe) * 4" identifier + (binary_expression "(iVar14 + -0xe) * 4" (parenthesized_expression "(iVar14 + -0xe)" ( (binary_expression "iVar14 + -0xe" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                              if (iVar14 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar28 = 1;\n                                              if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }" { (if_statement "if (iVar14 + -0xf == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar14 + -0xf == -1)" ( (binary_expression "iVar14 + -0xf == -1" (binary_expression "iVar14 + -0xf" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }" if (parenthesized_expression "(*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0)" ( (binary_expression "*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)\n                                                  == 0" (pointer_expression "*(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + (iVar14 + -0xf) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + (iVar14 + -0xf) * 4 + -0x68)" ( (binary_expression "puVar41 + (iVar14 + -0xf) * 4 + -0x68" (binary_expression "puVar41 + (iVar14 + -0xf) * 4" identifier + (binary_expression "(iVar14 + -0xf) * 4" (parenthesized_expression "(iVar14 + -0xf)" ( (binary_expression "iVar14 + -0xf" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                                trap(7);\n                                              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar28 = 1;" (assignment_expression "iVar28 = 1" identifier = number_literal) ;) (if_statement "if (uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0) {\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }" if (parenthesized_expression "(uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0)" ( (binary_expression "uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68) !=\n                                                  0" (binary_expression "uVar12 % *(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68)" ( (binary_expression "puVar41 +\n                                                                    (iVar14 + -0xf) * 4 + -0x68" (binary_expression "puVar41 +\n                                                                    (iVar14 + -0xf) * 4" identifier + (binary_expression "(iVar14 + -0xf) * 4" (parenthesized_expression "(iVar14 + -0xf)" ( (binary_expression "iVar14 + -0xf" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                                iVar14 = 0;\n                                                goto LAB_00032678;\n                                              }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00032678;" goto statement_identifier ;) })) })) })) })) })) })) })) })) })) })) })) })) })) })) })) (expression_statement "pEVar22 = pEVar34;" (assignment_expression "pEVar22 = pEVar34" identifier = identifier) ;) (expression_statement "iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35);" (assignment_expression "iVar14 = (**(code **)(iVar15 + -0x7b80))(ptVar35)" identifier = (call_expression "(**(code **)(iVar15 + -0x7b80))(ptVar35)" (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 "(ptVar35)" ( identifier )))) ;) (expression_statement "iVar15 = *(int *)(puVar41 + -0x88);" (assignment_expression "iVar15 = *(int *)(puVar41 + -0x88)" identifier = (pointer_expression "*(int *)(puVar41 + -0x88)" * (cast_expression "(int *)(puVar41 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x88)" ( (binary_expression "puVar41 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (iVar14 == 0) goto LAB_00032354;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00032354;" goto statement_identifier ;)) (expression_statement "(**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770);" (call_expression "(**(code **)(iVar15 + -0x7c20))\n                            (*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770)" (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 "(*(int *)(iVar15 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar15 + -0x7fd4) + 0x3770)" ( (binary_expression "*(int *)(iVar15 + -0x7fd4) + 0x37cc" (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) , number_literal , (binary_expression "*(int *)(iVar15 + -0x7fd4) + 0x3770" (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) ))) ;) })) (labeled_statement "LAB_0003295c:\n                iVar28 = 1;" statement_identifier : (expression_statement "iVar28 = 1;" (assignment_expression "iVar28 = 1" identifier = number_literal) ;)) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00032678:\n              *(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;" statement_identifier : (expression_statement "*(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48;" (assignment_expression "*(uint *)(puVar41 + iVar14 * 4 + -0x68) = uVar48" (pointer_expression "*(uint *)(puVar41 + iVar14 * 4 + -0x68)" * (cast_expression "(uint *)(puVar41 + iVar14 * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + iVar14 * 4 + -0x68)" ( (binary_expression "puVar41 + iVar14 * 4 + -0x68" (binary_expression "puVar41 + iVar14 * 4" identifier + (binary_expression "iVar14 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;)) (break_statement "break;" break ;) })) (expression_statement "uVar12 = uVar12 + 2;" (assignment_expression "uVar12 = uVar12 + 2" identifier = (binary_expression "uVar12 + 2" identifier + number_literal)) ;) (expression_statement "iVar28 = iVar14;" (assignment_expression "iVar28 = iVar14" identifier = identifier) ;) }) while (parenthesized_expression "(uVar46 != 0)" ( (binary_expression "uVar46 != 0" identifier != number_literal) )) ;) (expression_statement "uVar12 = uVar48 + 2;" (assignment_expression "uVar12 = uVar48 + 2" identifier = (binary_expression "uVar48 + 2" identifier + number_literal)) ;) (expression_statement "iVar42 = (uint)(uVar12 < uVar48) + iVar42;" (assignment_expression "iVar42 = (uint)(uVar12 < uVar48) + iVar42" identifier = (binary_expression "(uint)(uVar12 < uVar48) + iVar42" (call_expression "(uint)(uVar12 < uVar48)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < uVar48)" ( (binary_expression "uVar12 < uVar48" identifier < identifier) ))) + identifier)) ;) (expression_statement "iVar14 = iVar28;" (assignment_expression "iVar14 = iVar28" identifier = identifier) ;) (expression_statement "uVar48 = uVar12;" (assignment_expression "uVar48 = uVar12" identifier = identifier) ;) }) while (parenthesized_expression "(uVar12 < uVar47)" ( (binary_expression "uVar12 < uVar47" identifier < identifier) )) ;) })) (expression_statement "(**(code **)(iVar15 + -0x7d48))(ptVar33);" (call_expression "(**(code **)(iVar15 + -0x7d48))(ptVar33)" (parenthesized_expression "(**(code **)(iVar15 + -0x7d48))" ( (pointer_expression "**(code **)(iVar15 + -0x7d48)" * (pointer_expression "*(code **)(iVar15 + -0x7d48)" * (cast_expression "(code **)(iVar15 + -0x7d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + -0x7d48)" ( (binary_expression "iVar15 + -0x7d48" identifier + number_literal) ))))) )) (argument_list "(ptVar33)" ( identifier ))) ;) (expression_statement "iVar15 = *(int *)(puVar41 + -0x88);" (assignment_expression "iVar15 = *(int *)(puVar41 + -0x88)" identifier = (pointer_expression "*(int *)(puVar41 + -0x88)" * (cast_expression "(int *)(puVar41 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x88)" ( (binary_expression "puVar41 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar22 = pEVar30;" (assignment_expression "pEVar22 = pEVar30" identifier = identifier) ;) })) })) (labeled_statement "LAB_00032354:\n  iVar14 = *(int *)(puVar41 + -0x2c);" statement_identifier : (expression_statement "iVar14 = *(int *)(puVar41 + -0x2c);" (assignment_expression "iVar14 = *(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 (iVar14 == *piVar7) {\n    return;\n  }" if (parenthesized_expression "(iVar14 == *piVar7)" ( (binary_expression "iVar14 == *piVar7" identifier == (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar43 = *(code **)(iVar15 + -0x7b70);" (assignment_expression "pcVar43 = *(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 = 0x32974;" (assignment_expression "uVar44 = 0x32974" identifier = number_literal) ;) (expression_statement "(*pcVar43)();" (call_expression "(*pcVar43)()" (parenthesized_expression "(*pcVar43)" ( (pointer_expression "*pcVar43" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar38 = pcVar43 + 0x726c0;" (assignment_expression "pcVar38 = pcVar43 + 0x726c0" identifier = (binary_expression "pcVar43 + 0x726c0" identifier + number_literal)) ;) (expression_statement "pcVar13 = *(char **)(pcVar43 + 0x6a808);" (assignment_expression "pcVar13 = *(char **)(pcVar43 + 0x6a808)" identifier = (pointer_expression "*(char **)(pcVar43 + 0x6a808)" * (cast_expression "(char **)(pcVar43 + 0x6a808)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar43 + 0x6a808)" ( (binary_expression "pcVar43 + 0x6a808" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar41 + -0xa0) = piVar7;" (assignment_expression "*(int **)(puVar41 + -0xa0) = piVar7" (pointer_expression "*(int **)(puVar41 + -0xa0)" * (cast_expression "(int **)(puVar41 + -0xa0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0xa0)" ( (binary_expression "puVar41 + -0xa0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar41 + -0xa4) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar41 + -0xa4) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar41 + -0xa4)" * (cast_expression "(Elf32_Ehdr **)(puVar41 + -0xa4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0xa4)" ( (binary_expression "puVar41 + -0xa4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar41 + -0xb0) = pcVar38;" (assignment_expression "*(code **)(puVar41 + -0xb0) = pcVar38" (pointer_expression "*(code **)(puVar41 + -0xb0)" * (cast_expression "(code **)(puVar41 + -0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0xb0)" ( (binary_expression "puVar41 + -0xb0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar41 + -0x9c) = uVar44;" (assignment_expression "*(undefined4 *)(puVar41 + -0x9c) = uVar44" (pointer_expression "*(undefined4 *)(puVar41 + -0x9c)" * (cast_expression "(undefined4 *)(puVar41 + -0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + -0x9c)" ( (binary_expression "puVar41 + -0x9c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*pcVar13 == '\0') {\n    pcVar38 = *(code **)(pcVar43 + 0x6ac84);\n    uVar44 = *(undefined4 *)(pcVar43 + 0x6a8fc);\n    *pcVar13 = '\x01';\n    (*pcVar38)(uVar44);\n    pcVar38 = *(code **)(puVar41 + -0xb0);\n  }" if (parenthesized_expression "(*pcVar13 == '\0')" ( (binary_expression "*pcVar13 == '\0'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pcVar38 = *(code **)(pcVar43 + 0x6ac84);\n    uVar44 = *(undefined4 *)(pcVar43 + 0x6a8fc);\n    *pcVar13 = '\x01';\n    (*pcVar38)(uVar44);\n    pcVar38 = *(code **)(puVar41 + -0xb0);\n  }" { (expression_statement "pcVar38 = *(code **)(pcVar43 + 0x6ac84);" (assignment_expression "pcVar38 = *(code **)(pcVar43 + 0x6ac84)" identifier = (pointer_expression "*(code **)(pcVar43 + 0x6ac84)" * (cast_expression "(code **)(pcVar43 + 0x6ac84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar43 + 0x6ac84)" ( (binary_expression "pcVar43 + 0x6ac84" identifier + number_literal) ))))) ;) (expression_statement "uVar44 = *(undefined4 *)(pcVar43 + 0x6a8fc);" (assignment_expression "uVar44 = *(undefined4 *)(pcVar43 + 0x6a8fc)" identifier = (pointer_expression "*(undefined4 *)(pcVar43 + 0x6a8fc)" * (cast_expression "(undefined4 *)(pcVar43 + 0x6a8fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar43 + 0x6a8fc)" ( (binary_expression "pcVar43 + 0x6a8fc" identifier + number_literal) ))))) ;) (expression_statement "*pcVar13 = '\x01';" (assignment_expression "*pcVar13 = '\x01'" (pointer_expression "*pcVar13" * 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 + -0xb0);" (assignment_expression "pcVar38 = *(code **)(puVar41 + -0xb0)" identifier = (pointer_expression "*(code **)(puVar41 + -0xb0)" * (cast_expression "(code **)(puVar41 + -0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + -0xb0)" ( (binary_expression "puVar41 + -0xb0" identifier + number_literal) ))))) ;) })) (expression_statement "pEVar34 = pEVar22;" (assignment_expression "pEVar34 = pEVar22" identifier = identifier) ;) (if_statement "if ((int)pEVar22 < 0) {\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar22;\n  }" if (parenthesized_expression "((int)pEVar22 < 0)" ( (binary_expression "(int)pEVar22 < 0" (cast_expression "(int)pEVar22" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    pEVar34 = (Elf32_Ehdr *)-(int)pEVar22;\n  }" { (expression_statement "pEVar34 = (Elf32_Ehdr *)-(int)pEVar22;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)-(int)pEVar22" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar22" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar22" - (cast_expression "(int)pEVar22" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "(**(code **)(pcVar38 + -0x7f7c))(iVar14,*(undefined4 *)(pcVar38 + -0x7dc4),(int)pEVar34 << 5);" (call_expression "(**(code **)(pcVar38 + -0x7f7c))(iVar14,*(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 "(iVar14,*(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)pEVar22 < 0) {\n    *(int *)(iVar14 + 4) = -*(int *)(iVar14 + 4);\n  }" if (parenthesized_expression "((int)pEVar22 < 0)" ( (binary_expression "(int)pEVar22 < 0" (cast_expression "(int)pEVar22" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    *(int *)(iVar14 + 4) = -*(int *)(iVar14 + 4);\n  }" { (expression_statement "*(int *)(iVar14 + 4) = -*(int *)(iVar14 + 4);" (assignment_expression "*(int *)(iVar14 + 4) = -*(int *)(iVar14 + 4)" (pointer_expression "*(int *)(iVar14 + 4)" * (cast_expression "(int *)(iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) )))) = (unary_expression "-*(int *)(iVar14 + 4)" - (pointer_expression "*(int *)(iVar14 + 4)" * (cast_expression "(int *)(iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) )))))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "int FUN_000311c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *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  int *piVar6;\n  byte *pbVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  byte *pbVar12;\n  int iVar13;\n  int *piVar14;\n  undefined4 uVar15;\n  int iVar16;\n  uint uVar17;\n  Elf32_Ehdr *pEVar18;\n  undefined4 uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 *puVar21;\n  undefined4 uVar22;\n  undefined1 *puVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *in_t1;\n  Elf32_Ehdr *pEVar27;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *pEVar29;\n  Elf32_Ehdr *pEVar30;\n  int *piVar31;\n  Elf32_Ehdr *pEVar32;\n  uint *puVar33;\n  undefined *puVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  code *pcVar39;\n  code *pcVar40;\n  uint uVar41;\n  uint uVar42;\n  uint uVar43;\n  undefined8 uVar44;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;\n  puVar37 = auStack_58;\n  pEVar32 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (pEVar32 < (Elf32_Ehdr *)0x7f01) {\n    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);\n    puVar37 = auStack_58 + iVar11;\n    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }\n  uVar17 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar17 < 0x7f01) {\n    iVar11 = -(uVar17 + 7 & 0xfffffff8);\n    puVar3 = puVar37 + iVar11 + 0x18;\n    puVar37 = puVar37 + iVar11;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar25 = *param_2;\n    if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }\n  }\n  *(undefined1 **)(puVar37 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar37 + 0x10) = param_6;\n  pEVar18 = param_3;\n  pEVar27 = param_5;\n  FUN_00030f30(pEVar28);\n  pEVar30 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar18 = *(Elf32_Ehdr **)pEVar28;\n    pEVar5 = param_1;\n    pEVar29 = pEVar28;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 = pEVar18;\n  }\n  piVar14 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if (local_2c == *(int *)pEVar20) {\n    return *(int *)pEVar20;\n  }\n  pcVar39 = __gmpz_powm_ui;\n  puVar34 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  puVar35 = puVar34 + 0x73c70;\n  puVar4 = *(undefined4 **)(puVar34 + 0x6c170);\n  puVar10 = puVar37 + -0xa8;\n  puVar3 = puVar37 + -0xa8;\n  puVar38 = puVar37 + -0xa8;\n  *(undefined1 **)(puVar37 + -8) = auStack_58;\n  *(undefined4 **)(puVar37 + -0x20) = param_2;\n  *(code **)(puVar37 + -4) = pcVar39;\n  *(undefined4 **)(puVar37 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar37 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar37 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30;\n  *(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28;\n  *(Elf32_Ehdr **)(puVar37 + -0x28) = param_1;\n  *(undefined **)(puVar37 + -0x90) = puVar35;\n  *(int **)(puVar37 + -0x54) = piVar14;\n  *(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18;\n  *(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27;\n  *(undefined4 *)(puVar37 + -0x2c) = *puVar4;\n  pEVar29 = param_4;\n  if (param_4 < (Elf32_Ehdr *)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar32 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;\n    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);\n    uVar42 = uVar43;\n    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }\n    uVar42 = uVar17 << 0x10 | uVar42;\n    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);\n    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }\n    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar18 = (Elf32_Ehdr *)lVar2;\n    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n    uVar17 = uVar42;\n    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }\n    *(uint *)(puVar37 + -0x44) = uVar17;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);\n    pEVar30 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);\n    if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar17 = *(int *)(puVar37 + -0x50) + 4;\n    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);\n    *(uint *)(puVar37 + -0x70) = uVar17;\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }\n    uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n    pEVar18 = pEVar20;\n    FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);\n    puVar35 = *(undefined **)(puVar37 + -0x90);\n    pEVar30 = pEVar32;\n    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }\n    puVar4 = *(undefined4 **)(puVar37 + -100);\n    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);\n    pEVar18 = (Elf32_Ehdr *)*puVar4;\n    pEVar28 = param_6;\n    puVar10 = puVar23;\n    if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar28 = pEVar18;\n    param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);\n    iVar11 = 0x1f - (int)param_1;\n    param_3 = pEVar30;\n    if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }\nLAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);\n    piVar6 = *(int **)(puVar37 + -0x58);\n    if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }\n  else {\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }\n  if (*(int *)(puVar37 + -0x2c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(puVar35 + -0x7b70);\n  uVar25 = 0x3206c;\n  (*pcVar39)();\n  pcVar36 = pcVar39 + 0x72fd0;\n  puVar10 = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29;\n  piVar6 = *(int **)(pcVar39 + 0x6b4d0);\n  *(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar25;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar30;\n  *(code **)(puVar3 + -0x28) = pcVar36;\n  *(int *)(puVar3 + -0x1c) = *piVar6;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar18) {\n    if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);\n    pcVar36 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);\n    uVar17 = 8;\n    do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);\n    if (uVar42 == 0) {\n      trap(7);\n    }\n    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    iVar13 = 0;\n    uVar43 = 1;\n    iVar11 = 0;\n    uVar17 = 0;\n    uVar42 = 6;\n    do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);\n    if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    piVar31 = *(int **)(puVar3 + -0x20);\n    if (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(pcVar36 + -0x7b70);\n  pcVar40 = __gmpz_probab_prime_p;\n  (*pcVar39)();\n  pcVar36 = *(code **)(pcVar39 + 0x6ae78);\n  *(int **)(puVar10 + -0x24) = piVar14;\n  *(int **)(puVar10 + -0x20) = piVar6;\n  piVar14 = *(int **)(pcVar39 + 0x6b270);\n  *(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30;\n  pEVar20 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70;\n  *(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar10 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18;\n  *(code **)(puVar10 + -4) = pcVar40;\n  *(undefined1 **)(puVar10 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar10 + -0xc) = param_6;\n  *(int *)(puVar10 + -0x2c) = *piVar14;\n  iVar11 = (*pcVar36)();\n  puVar33 = (uint *)piVar31[2];\n  iVar13 = *(int *)(puVar10 + -0x88);\n  pEVar32 = (Elf32_Ehdr *)piVar31[1];\n  uVar17 = *puVar33;\n  if (iVar11 < 1) {\n    pEVar20 = (Elf32_Ehdr *)0xf4240;\n    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);\n    iVar13 = *(int *)(puVar10 + -0x88);\n    if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;\n    *(uint **)(puVar10 + -0x6c) = puVar33;\n    piVar31 = (int *)(puVar10 + -0x74);\n    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;\n  }\n  if (pEVar32 != (Elf32_Ehdr *)0x0) {\n    uVar17 = uVar17 & 1;\n    iVar11 = 0;\n    if (uVar17 == 0) goto LAB_00032354;\n    pEVar20 = pEVar32;\n    if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }\n  }\n  iVar11 = 0;\nLAB_00032354:\n  iVar16 = *(int *)(puVar10 + -0x2c);\n  if (iVar16 != *piVar14) {\n    pcVar39 = *(code **)(iVar13 + -0x7b70);\n    uVar25 = 0x32974;\n    (*pcVar39)();\n    pcVar36 = pcVar39 + 0x726c0;\n    pcVar9 = *(char **)(pcVar39 + 0x6a808);\n    *(int **)(puVar10 + -0xa0) = piVar14;\n    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;\n    *(code **)(puVar10 + -0xb0) = pcVar36;\n    *(undefined4 *)(puVar10 + -0x9c) = uVar25;\n    if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }\n    pEVar32 = pEVar20;\n    if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);\n    if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }\n    return iVar11;\n  }\n  return iVar11;\n}\n\n" (function_definition "int FUN_000311c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *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  int *piVar6;\n  byte *pbVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  byte *pbVar12;\n  int iVar13;\n  int *piVar14;\n  undefined4 uVar15;\n  int iVar16;\n  uint uVar17;\n  Elf32_Ehdr *pEVar18;\n  undefined4 uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 *puVar21;\n  undefined4 uVar22;\n  undefined1 *puVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *in_t1;\n  Elf32_Ehdr *pEVar27;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *pEVar29;\n  Elf32_Ehdr *pEVar30;\n  int *piVar31;\n  Elf32_Ehdr *pEVar32;\n  uint *puVar33;\n  undefined *puVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  code *pcVar39;\n  code *pcVar40;\n  uint uVar41;\n  uint uVar42;\n  uint uVar43;\n  undefined8 uVar44;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;\n  puVar37 = auStack_58;\n  pEVar32 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (pEVar32 < (Elf32_Ehdr *)0x7f01) {\n    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);\n    puVar37 = auStack_58 + iVar11;\n    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }\n  uVar17 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar17 < 0x7f01) {\n    iVar11 = -(uVar17 + 7 & 0xfffffff8);\n    puVar3 = puVar37 + iVar11 + 0x18;\n    puVar37 = puVar37 + iVar11;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar25 = *param_2;\n    if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }\n  }\n  *(undefined1 **)(puVar37 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar37 + 0x10) = param_6;\n  pEVar18 = param_3;\n  pEVar27 = param_5;\n  FUN_00030f30(pEVar28);\n  pEVar30 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar18 = *(Elf32_Ehdr **)pEVar28;\n    pEVar5 = param_1;\n    pEVar29 = pEVar28;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 = pEVar18;\n  }\n  piVar14 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if (local_2c == *(int *)pEVar20) {\n    return *(int *)pEVar20;\n  }\n  pcVar39 = __gmpz_powm_ui;\n  puVar34 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  puVar35 = puVar34 + 0x73c70;\n  puVar4 = *(undefined4 **)(puVar34 + 0x6c170);\n  puVar10 = puVar37 + -0xa8;\n  puVar3 = puVar37 + -0xa8;\n  puVar38 = puVar37 + -0xa8;\n  *(undefined1 **)(puVar37 + -8) = auStack_58;\n  *(undefined4 **)(puVar37 + -0x20) = param_2;\n  *(code **)(puVar37 + -4) = pcVar39;\n  *(undefined4 **)(puVar37 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar37 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar37 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30;\n  *(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28;\n  *(Elf32_Ehdr **)(puVar37 + -0x28) = param_1;\n  *(undefined **)(puVar37 + -0x90) = puVar35;\n  *(int **)(puVar37 + -0x54) = piVar14;\n  *(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18;\n  *(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27;\n  *(undefined4 *)(puVar37 + -0x2c) = *puVar4;\n  pEVar29 = param_4;\n  if (param_4 < (Elf32_Ehdr *)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar32 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;\n    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);\n    uVar42 = uVar43;\n    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }\n    uVar42 = uVar17 << 0x10 | uVar42;\n    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);\n    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }\n    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar18 = (Elf32_Ehdr *)lVar2;\n    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n    uVar17 = uVar42;\n    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }\n    *(uint *)(puVar37 + -0x44) = uVar17;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);\n    pEVar30 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);\n    if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar17 = *(int *)(puVar37 + -0x50) + 4;\n    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);\n    *(uint *)(puVar37 + -0x70) = uVar17;\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }\n    uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n    pEVar18 = pEVar20;\n    FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);\n    puVar35 = *(undefined **)(puVar37 + -0x90);\n    pEVar30 = pEVar32;\n    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }\n    puVar4 = *(undefined4 **)(puVar37 + -100);\n    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);\n    pEVar18 = (Elf32_Ehdr *)*puVar4;\n    pEVar28 = param_6;\n    puVar10 = puVar23;\n    if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar28 = pEVar18;\n    param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);\n    iVar11 = 0x1f - (int)param_1;\n    param_3 = pEVar30;\n    if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }\nLAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);\n    piVar6 = *(int **)(puVar37 + -0x58);\n    if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }\n  else {\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }\n  if (*(int *)(puVar37 + -0x2c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(puVar35 + -0x7b70);\n  uVar25 = 0x3206c;\n  (*pcVar39)();\n  pcVar36 = pcVar39 + 0x72fd0;\n  puVar10 = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29;\n  piVar6 = *(int **)(pcVar39 + 0x6b4d0);\n  *(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar25;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar30;\n  *(code **)(puVar3 + -0x28) = pcVar36;\n  *(int *)(puVar3 + -0x1c) = *piVar6;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar18) {\n    if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);\n    pcVar36 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);\n    uVar17 = 8;\n    do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);\n    if (uVar42 == 0) {\n      trap(7);\n    }\n    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    iVar13 = 0;\n    uVar43 = 1;\n    iVar11 = 0;\n    uVar17 = 0;\n    uVar42 = 6;\n    do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);\n    if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    piVar31 = *(int **)(puVar3 + -0x20);\n    if (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(pcVar36 + -0x7b70);\n  pcVar40 = __gmpz_probab_prime_p;\n  (*pcVar39)();\n  pcVar36 = *(code **)(pcVar39 + 0x6ae78);\n  *(int **)(puVar10 + -0x24) = piVar14;\n  *(int **)(puVar10 + -0x20) = piVar6;\n  piVar14 = *(int **)(pcVar39 + 0x6b270);\n  *(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30;\n  pEVar20 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70;\n  *(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar10 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18;\n  *(code **)(puVar10 + -4) = pcVar40;\n  *(undefined1 **)(puVar10 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar10 + -0xc) = param_6;\n  *(int *)(puVar10 + -0x2c) = *piVar14;\n  iVar11 = (*pcVar36)();\n  puVar33 = (uint *)piVar31[2];\n  iVar13 = *(int *)(puVar10 + -0x88);\n  pEVar32 = (Elf32_Ehdr *)piVar31[1];\n  uVar17 = *puVar33;\n  if (iVar11 < 1) {\n    pEVar20 = (Elf32_Ehdr *)0xf4240;\n    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);\n    iVar13 = *(int *)(puVar10 + -0x88);\n    if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;\n    *(uint **)(puVar10 + -0x6c) = puVar33;\n    piVar31 = (int *)(puVar10 + -0x74);\n    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;\n  }\n  if (pEVar32 != (Elf32_Ehdr *)0x0) {\n    uVar17 = uVar17 & 1;\n    iVar11 = 0;\n    if (uVar17 == 0) goto LAB_00032354;\n    pEVar20 = pEVar32;\n    if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }\n  }\n  iVar11 = 0;\nLAB_00032354:\n  iVar16 = *(int *)(puVar10 + -0x2c);\n  if (iVar16 != *piVar14) {\n    pcVar39 = *(code **)(iVar13 + -0x7b70);\n    uVar25 = 0x32974;\n    (*pcVar39)();\n    pcVar36 = pcVar39 + 0x726c0;\n    pcVar9 = *(char **)(pcVar39 + 0x6a808);\n    *(int **)(puVar10 + -0xa0) = piVar14;\n    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;\n    *(code **)(puVar10 + -0xb0) = pcVar36;\n    *(undefined4 *)(puVar10 + -0x9c) = uVar25;\n    if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }\n    pEVar32 = pEVar20;\n    if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);\n    if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }\n    return iVar11;\n  }\n  return iVar11;\n}" primitive_type (function_declarator "FUN_000311c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *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,Elf32_Ehdr *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 "Elf32_Ehdr *param_4" type_identifier (pointer_declarator "*param_4" * 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  int *piVar6;\n  byte *pbVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  byte *pbVar12;\n  int iVar13;\n  int *piVar14;\n  undefined4 uVar15;\n  int iVar16;\n  uint uVar17;\n  Elf32_Ehdr *pEVar18;\n  undefined4 uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 *puVar21;\n  undefined4 uVar22;\n  undefined1 *puVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *in_t1;\n  Elf32_Ehdr *pEVar27;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *pEVar29;\n  Elf32_Ehdr *pEVar30;\n  int *piVar31;\n  Elf32_Ehdr *pEVar32;\n  uint *puVar33;\n  undefined *puVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  code *pcVar39;\n  code *pcVar40;\n  uint uVar41;\n  uint uVar42;\n  uint uVar43;\n  undefined8 uVar44;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;\n  puVar37 = auStack_58;\n  pEVar32 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (pEVar32 < (Elf32_Ehdr *)0x7f01) {\n    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);\n    puVar37 = auStack_58 + iVar11;\n    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }\n  uVar17 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar17 < 0x7f01) {\n    iVar11 = -(uVar17 + 7 & 0xfffffff8);\n    puVar3 = puVar37 + iVar11 + 0x18;\n    puVar37 = puVar37 + iVar11;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar25 = *param_2;\n    if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }\n  }\n  *(undefined1 **)(puVar37 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar37 + 0x10) = param_6;\n  pEVar18 = param_3;\n  pEVar27 = param_5;\n  FUN_00030f30(pEVar28);\n  pEVar30 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar18 = *(Elf32_Ehdr **)pEVar28;\n    pEVar5 = param_1;\n    pEVar29 = pEVar28;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 = pEVar18;\n  }\n  piVar14 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if (local_2c == *(int *)pEVar20) {\n    return *(int *)pEVar20;\n  }\n  pcVar39 = __gmpz_powm_ui;\n  puVar34 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  puVar35 = puVar34 + 0x73c70;\n  puVar4 = *(undefined4 **)(puVar34 + 0x6c170);\n  puVar10 = puVar37 + -0xa8;\n  puVar3 = puVar37 + -0xa8;\n  puVar38 = puVar37 + -0xa8;\n  *(undefined1 **)(puVar37 + -8) = auStack_58;\n  *(undefined4 **)(puVar37 + -0x20) = param_2;\n  *(code **)(puVar37 + -4) = pcVar39;\n  *(undefined4 **)(puVar37 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar37 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar37 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30;\n  *(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28;\n  *(Elf32_Ehdr **)(puVar37 + -0x28) = param_1;\n  *(undefined **)(puVar37 + -0x90) = puVar35;\n  *(int **)(puVar37 + -0x54) = piVar14;\n  *(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18;\n  *(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27;\n  *(undefined4 *)(puVar37 + -0x2c) = *puVar4;\n  pEVar29 = param_4;\n  if (param_4 < (Elf32_Ehdr *)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar32 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;\n    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);\n    uVar42 = uVar43;\n    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }\n    uVar42 = uVar17 << 0x10 | uVar42;\n    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);\n    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }\n    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar18 = (Elf32_Ehdr *)lVar2;\n    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n    uVar17 = uVar42;\n    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }\n    *(uint *)(puVar37 + -0x44) = uVar17;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);\n    pEVar30 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);\n    if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar17 = *(int *)(puVar37 + -0x50) + 4;\n    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);\n    *(uint *)(puVar37 + -0x70) = uVar17;\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }\n    uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n    pEVar18 = pEVar20;\n    FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);\n    puVar35 = *(undefined **)(puVar37 + -0x90);\n    pEVar30 = pEVar32;\n    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }\n    puVar4 = *(undefined4 **)(puVar37 + -100);\n    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);\n    pEVar18 = (Elf32_Ehdr *)*puVar4;\n    pEVar28 = param_6;\n    puVar10 = puVar23;\n    if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar28 = pEVar18;\n    param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);\n    iVar11 = 0x1f - (int)param_1;\n    param_3 = pEVar30;\n    if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }\nLAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);\n    piVar6 = *(int **)(puVar37 + -0x58);\n    if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }\n  else {\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }\n  if (*(int *)(puVar37 + -0x2c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(puVar35 + -0x7b70);\n  uVar25 = 0x3206c;\n  (*pcVar39)();\n  pcVar36 = pcVar39 + 0x72fd0;\n  puVar10 = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29;\n  piVar6 = *(int **)(pcVar39 + 0x6b4d0);\n  *(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar25;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar30;\n  *(code **)(puVar3 + -0x28) = pcVar36;\n  *(int *)(puVar3 + -0x1c) = *piVar6;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar18) {\n    if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);\n    pcVar36 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);\n    uVar17 = 8;\n    do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);\n    if (uVar42 == 0) {\n      trap(7);\n    }\n    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    iVar13 = 0;\n    uVar43 = 1;\n    iVar11 = 0;\n    uVar17 = 0;\n    uVar42 = 6;\n    do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);\n    if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    piVar31 = *(int **)(puVar3 + -0x20);\n    if (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(pcVar36 + -0x7b70);\n  pcVar40 = __gmpz_probab_prime_p;\n  (*pcVar39)();\n  pcVar36 = *(code **)(pcVar39 + 0x6ae78);\n  *(int **)(puVar10 + -0x24) = piVar14;\n  *(int **)(puVar10 + -0x20) = piVar6;\n  piVar14 = *(int **)(pcVar39 + 0x6b270);\n  *(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30;\n  pEVar20 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70;\n  *(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar10 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18;\n  *(code **)(puVar10 + -4) = pcVar40;\n  *(undefined1 **)(puVar10 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar10 + -0xc) = param_6;\n  *(int *)(puVar10 + -0x2c) = *piVar14;\n  iVar11 = (*pcVar36)();\n  puVar33 = (uint *)piVar31[2];\n  iVar13 = *(int *)(puVar10 + -0x88);\n  pEVar32 = (Elf32_Ehdr *)piVar31[1];\n  uVar17 = *puVar33;\n  if (iVar11 < 1) {\n    pEVar20 = (Elf32_Ehdr *)0xf4240;\n    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);\n    iVar13 = *(int *)(puVar10 + -0x88);\n    if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;\n    *(uint **)(puVar10 + -0x6c) = puVar33;\n    piVar31 = (int *)(puVar10 + -0x74);\n    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;\n  }\n  if (pEVar32 != (Elf32_Ehdr *)0x0) {\n    uVar17 = uVar17 & 1;\n    iVar11 = 0;\n    if (uVar17 == 0) goto LAB_00032354;\n    pEVar20 = pEVar32;\n    if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }\n  }\n  iVar11 = 0;\nLAB_00032354:\n  iVar16 = *(int *)(puVar10 + -0x2c);\n  if (iVar16 != *piVar14) {\n    pcVar39 = *(code **)(iVar13 + -0x7b70);\n    uVar25 = 0x32974;\n    (*pcVar39)();\n    pcVar36 = pcVar39 + 0x726c0;\n    pcVar9 = *(char **)(pcVar39 + 0x6a808);\n    *(int **)(puVar10 + -0xa0) = piVar14;\n    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;\n    *(code **)(puVar10 + -0xb0) = pcVar36;\n    *(undefined4 *)(puVar10 + -0x9c) = uVar25;\n    if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }\n    pEVar32 = pEVar20;\n    if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);\n    if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }\n    return iVar11;\n  }\n  return iVar11;\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 "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar18;" type_identifier (pointer_declarator "*pEVar18" * identifier) ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar20;" type_identifier (pointer_declarator "*pEVar20" * identifier) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "undefined1 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "Elf32_Ehdr *in_t1;" type_identifier (pointer_declarator "*in_t1" * identifier) ;) (declaration "Elf32_Ehdr *pEVar27;" type_identifier (pointer_declarator "*pEVar27" * identifier) ;) (declaration "uint in_t2;" type_identifier identifier ;) (declaration "Elf32_Ehdr *in_t3;" type_identifier (pointer_declarator "*in_t3" * identifier) ;) (declaration "Elf32_Ehdr *pEVar28;" type_identifier (pointer_declarator "*pEVar28" * identifier) ;) (declaration "Elf32_Ehdr *pEVar29;" type_identifier (pointer_declarator "*pEVar29" * identifier) ;) (declaration "Elf32_Ehdr *pEVar30;" type_identifier (pointer_declarator "*pEVar30" * identifier) ;) (declaration "int *piVar31;" primitive_type (pointer_declarator "*piVar31" * identifier) ;) (declaration "Elf32_Ehdr *pEVar32;" type_identifier (pointer_declarator "*pEVar32" * identifier) ;) (declaration "uint *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "undefined *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "undefined *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "code *pcVar36;" type_identifier (pointer_declarator "*pcVar36" * identifier) ;) (declaration "undefined1 *puVar37;" type_identifier (pointer_declarator "*puVar37" * identifier) ;) (declaration "undefined1 *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "code *pcVar39;" type_identifier (pointer_declarator "*pcVar39" * identifier) ;) (declaration "code *pcVar40;" type_identifier (pointer_declarator "*pcVar40" * identifier) ;) (declaration "uint uVar41;" type_identifier identifier ;) (declaration "uint uVar42;" type_identifier identifier ;) (declaration "uint uVar43;" type_identifier identifier ;) (declaration "undefined8 uVar44;" 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 "pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540" identifier = (cast_expression "(Elf32_Ehdr *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar37 = auStack_58;" (assignment_expression "puVar37 = auStack_58" identifier = identifier) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)((int)param_3 * 4);" (assignment_expression "pEVar32 = (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_0009d540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" * (cast_expression "(int *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (pEVar32 < (Elf32_Ehdr *)0x7f01) {\n    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);\n    puVar37 = auStack_58 + iVar11;\n    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }" if (parenthesized_expression "(pEVar32 < (Elf32_Ehdr *)0x7f01)" ( (binary_expression "pEVar32 < (Elf32_Ehdr *)0x7f01" identifier < (cast_expression "(Elf32_Ehdr *)0x7f01" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);\n    puVar37 = auStack_58 + iVar11;\n    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);\n  }" { (expression_statement "iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);" (assignment_expression "iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8)" identifier = (unary_expression "-((uint)&pEVar32->e_ident_osabi & 0xfffffff8)" - (parenthesized_expression "((uint)&pEVar32->e_ident_osabi & 0xfffffff8)" ( (binary_expression "(uint)&pEVar32->e_ident_osabi & 0xfffffff8" (binary_expression "(uint)&pEVar32->e_ident_osabi" (parenthesized_expression "(uint)" ( identifier )) & (field_expression "pEVar32->e_ident_osabi" identifier -> field_identifier)) & number_literal) )))) ;) (expression_statement "puVar37 = auStack_58 + iVar11;" (assignment_expression "puVar37 = auStack_58 + iVar11" identifier = (binary_expression "auStack_58 + iVar11" identifier + identifier)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11)" identifier = (cast_expression "(Elf32_Ehdr *)(&stack0xffffffc0 + iVar11)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffc0 + iVar11)" ( (binary_expression "&stack0xffffffc0 + iVar11" (pointer_expression "&stack0xffffffc0" & identifier) + identifier) )))) ;) }) (else_clause "else {\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }" else (compound_statement "{\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30,pEVar32)" ( (pointer_expression "&local_30" & identifier) , identifier ))))) ;) }))) (expression_statement "uVar17 = (int)((int)param_3 + (1 - (int)param_5)) * 4;" (assignment_expression "uVar17 = (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 (uVar17 < 0x7f01) {\n    iVar11 = -(uVar17 + 7 & 0xfffffff8);\n    puVar3 = puVar37 + iVar11 + 0x18;\n    puVar37 = puVar37 + iVar11;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" if (parenthesized_expression "(uVar17 < 0x7f01)" ( (binary_expression "uVar17 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar11 = -(uVar17 + 7 & 0xfffffff8);\n    puVar3 = puVar37 + iVar11 + 0x18;\n    puVar37 = puVar37 + iVar11;\n  }" { (expression_statement "iVar11 = -(uVar17 + 7 & 0xfffffff8);" (assignment_expression "iVar11 = -(uVar17 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar17 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar17 + 7 & 0xfffffff8)" ( (binary_expression "uVar17 + 7 & 0xfffffff8" (binary_expression "uVar17 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar3 = puVar37 + iVar11 + 0x18;" (assignment_expression "puVar3 = puVar37 + iVar11 + 0x18" identifier = (binary_expression "puVar37 + iVar11 + 0x18" (binary_expression "puVar37 + iVar11" identifier + identifier) + number_literal)) ;) (expression_statement "puVar37 = puVar37 + iVar11;" (assignment_expression "puVar37 = puVar37 + iVar11" identifier = (binary_expression "puVar37 + iVar11" identifier + identifier)) ;) }) (else_clause "else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" else (compound_statement "{\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" { (expression_statement "puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (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    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar25 = *param_2;\n    if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\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    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar25 = *param_2;\n    if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }\n  }" { (expression_statement "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (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 "uVar25 = *param_2;" (assignment_expression "uVar25 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }" if (parenthesized_expression "(puVar10 == (undefined1 *)0x0)" ( (binary_expression "puVar10 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }" { (expression_statement "pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar28->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 "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 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)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 "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 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)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 "pEVar28->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar28->e_ident_magic_str[2] = (char)uVar25" (subscript_expression "pEVar28->e_ident_magic_str[2]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar32 = pEVar28;" (assignment_expression "pEVar32 = pEVar28" identifier = identifier) ;) }) (else_clause "else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }" else (compound_statement "{\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }" { (expression_statement "pEVar30 = pEVar28;" (assignment_expression "pEVar30 = pEVar28" 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        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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\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 "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar25 = *puVar4;" (assignment_expression "uVar25 = *puVar4" identifier = (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)))) ;) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );" (assignment_expression "pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                )" identifier = (cast_expression "(Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                )" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                )" ( (binary_expression "(undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str" (cast_expression "(undefined1 *)((int)&pEVar32[-1].e_shentsize + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar32[-1].e_shentsize + 1)" ( (binary_expression "(int)&pEVar32[-1].e_shentsize + 1" (cast_expression "(int)&pEVar32[-1].e_shentsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar32[-1].e_shentsize" & (field_expression "pEVar32[-1].e_shentsize" (subscript_expression "pEVar32[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) + (cast_expression "(int)pEVar28->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier))) )))) ;) (expression_statement "pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar32->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 "pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 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)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 "pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 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)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 "pEVar32->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar32->e_ident_magic_str[2] = (char)uVar25" (subscript_expression "pEVar32->e_ident_magic_str[2]" (field_expression "pEVar32->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) })) (expression_statement "*(undefined1 **)(puVar37 + 0x14) = puVar3;" (assignment_expression "*(undefined1 **)(puVar37 + 0x14) = puVar3" (pointer_expression "*(undefined1 **)(puVar37 + 0x14)" * (cast_expression "(undefined1 **)(puVar37 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x14)" ( (binary_expression "puVar37 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + 0x10) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + 0x10) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x10)" ( (binary_expression "puVar37 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar18 = param_3;" (assignment_expression "pEVar18 = param_3" identifier = identifier) ;) (expression_statement "pEVar27 = param_5;" (assignment_expression "pEVar27 = param_5" identifier = identifier) ;) (expression_statement "FUN_00030f30(pEVar28);" (call_expression "FUN_00030f30(pEVar28)" identifier (argument_list "(pEVar28)" ( identifier ))) ;) (expression_statement "pEVar30 = param_5;" (assignment_expression "pEVar30 = param_5" identifier = identifier) ;) (if_statement "if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar18 = *(Elf32_Ehdr **)pEVar28;\n    pEVar5 = param_1;\n    pEVar29 = pEVar28;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 = pEVar18;\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    pEVar18 = *(Elf32_Ehdr **)pEVar28;\n    pEVar5 = param_1;\n    pEVar29 = pEVar28;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 = pEVar18;\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 "pEVar18 = *(Elf32_Ehdr **)pEVar28;" (assignment_expression "pEVar18 = *(Elf32_Ehdr **)pEVar28" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar28" * (cast_expression "(Elf32_Ehdr **)pEVar28" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar5 = param_1;" (assignment_expression "pEVar5 = param_1" identifier = identifier) ;) (expression_statement "pEVar29 = pEVar28;" (assignment_expression "pEVar29 = pEVar28" identifier = identifier) ;) (if_statement "if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);" do (compound_statement "{\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      }" { (expression_statement "*(Elf32_Ehdr **)pEVar5 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)pEVar5 = pEVar18" (pointer_expression "*(Elf32_Ehdr **)pEVar5" * (cast_expression "(Elf32_Ehdr **)pEVar5" ( (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 "pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;" (assignment_expression "pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar29->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar29->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar29->e_ident_class" & (field_expression "pEVar29->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)))) ;) (expression_statement "pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;" (assignment_expression "pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar29->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar29->e_ident_class" & (field_expression "pEVar29->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 "pEVar30 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);" (assignment_expression "pEVar30 = (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 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)param_1 = pEVar18" (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 "piVar14 = local_30;" (assignment_expression "piVar14 = local_30" identifier = identifier) ;) (if_statement "if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\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_0009d618)();\n  }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_2c == *(int *)pEVar20) {\n    return *(int *)pEVar20;\n  }" if (parenthesized_expression "(local_2c == *(int *)pEVar20)" ( (binary_expression "local_2c == *(int *)pEVar20" identifier == (pointer_expression "*(int *)pEVar20" * (cast_expression "(int *)pEVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return *(int *)pEVar20;\n  }" { (return_statement "return *(int *)pEVar20;" return (pointer_expression "*(int *)pEVar20" * (cast_expression "(int *)pEVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "pcVar39 = __gmpz_powm_ui;" (assignment_expression "pcVar39 = __gmpz_powm_ui" identifier = identifier) ;) (expression_statement "puVar34 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar34 = PTR___stack_chk_fail_0009d4d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" * (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar35 = puVar34 + 0x73c70;" (assignment_expression "puVar35 = puVar34 + 0x73c70" identifier = (binary_expression "puVar34 + 0x73c70" identifier + number_literal)) ;) (expression_statement "puVar4 = *(undefined4 **)(puVar34 + 0x6c170);" (assignment_expression "puVar4 = *(undefined4 **)(puVar34 + 0x6c170)" identifier = (pointer_expression "*(undefined4 **)(puVar34 + 0x6c170)" * (cast_expression "(undefined4 **)(puVar34 + 0x6c170)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar34 + 0x6c170)" ( (binary_expression "puVar34 + 0x6c170" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = puVar37 + -0xa8;" (assignment_expression "puVar10 = puVar37 + -0xa8" identifier = (binary_expression "puVar37 + -0xa8" identifier + number_literal)) ;) (expression_statement "puVar3 = puVar37 + -0xa8;" (assignment_expression "puVar3 = puVar37 + -0xa8" identifier = (binary_expression "puVar37 + -0xa8" identifier + number_literal)) ;) (expression_statement "puVar38 = puVar37 + -0xa8;" (assignment_expression "puVar38 = puVar37 + -0xa8" identifier = (binary_expression "puVar37 + -0xa8" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar37 + -8) = auStack_58;" (assignment_expression "*(undefined1 **)(puVar37 + -8) = auStack_58" (pointer_expression "*(undefined1 **)(puVar37 + -8)" * (cast_expression "(undefined1 **)(puVar37 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -8)" ( (binary_expression "puVar37 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar37 + -0x20) = param_2;" (assignment_expression "*(undefined4 **)(puVar37 + -0x20) = param_2" (pointer_expression "*(undefined4 **)(puVar37 + -0x20)" * (cast_expression "(undefined4 **)(puVar37 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x20)" ( (binary_expression "puVar37 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar37 + -4) = pcVar39;" (assignment_expression "*(code **)(puVar37 + -4) = pcVar39" (pointer_expression "*(code **)(puVar37 + -4)" * (cast_expression "(code **)(puVar37 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -4)" ( (binary_expression "puVar37 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar37 + -0x58) = puVar4;" (assignment_expression "*(undefined4 **)(puVar37 + -0x58) = puVar4" (pointer_expression "*(undefined4 **)(puVar37 + -0x58)" * (cast_expression "(undefined4 **)(puVar37 + -0x58)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x58)" ( (binary_expression "puVar37 + -0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0xc) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0xc) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0xc)" ( (binary_expression "puVar37 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x10)" ( (binary_expression "puVar37 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x14) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x14) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x14)" ( (binary_expression "puVar37 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x18)" ( (binary_expression "puVar37 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x1c)" ( (binary_expression "puVar37 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x24)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x24)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x24)" ( (binary_expression "puVar37 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x28) = param_1;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x28) = param_1" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x28)" ( (binary_expression "puVar37 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar37 + -0x90) = puVar35;" (assignment_expression "*(undefined **)(puVar37 + -0x90) = puVar35" (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar37 + -0x54) = piVar14;" (assignment_expression "*(int **)(puVar37 + -0x54) = piVar14" (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x5c)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x5c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x5c)" ( (binary_expression "puVar37 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x68)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x68)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x68)" ( (binary_expression "puVar37 + -0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar37 + -0x2c) = *puVar4;" (assignment_expression "*(undefined4 *)(puVar37 + -0x2c) = *puVar4" (pointer_expression "*(undefined4 *)(puVar37 + -0x2c)" * (cast_expression "(undefined4 *)(puVar37 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x2c)" ( (binary_expression "puVar37 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "pEVar29 = param_4;" (assignment_expression "pEVar29 = param_4" identifier = identifier) ;) (if_statement "if (param_4 < (Elf32_Ehdr *)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar32 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;\n    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);\n    uVar42 = uVar43;\n    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }\n    uVar42 = uVar17 << 0x10 | uVar42;\n    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);\n    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }\n    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar18 = (Elf32_Ehdr *)lVar2;\n    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n    uVar17 = uVar42;\n    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }\n    *(uint *)(puVar37 + -0x44) = uVar17;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);\n    pEVar30 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);\n    if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar17 = *(int *)(puVar37 + -0x50) + 4;\n    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);\n    *(uint *)(puVar37 + -0x70) = uVar17;\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }\n    uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n    pEVar18 = pEVar20;\n    FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);\n    puVar35 = *(undefined **)(puVar37 + -0x90);\n    pEVar30 = pEVar32;\n    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }\n    puVar4 = *(undefined4 **)(puVar37 + -100);\n    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);\n    pEVar18 = (Elf32_Ehdr *)*puVar4;\n    pEVar28 = param_6;\n    puVar10 = puVar23;\n    if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar28 = pEVar18;\n    param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);\n    iVar11 = 0x1f - (int)param_1;\n    param_3 = pEVar30;\n    if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }\nLAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);\n    piVar6 = *(int **)(puVar37 + -0x58);\n    if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }\n  else {\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }" if (parenthesized_expression "(param_4 < (Elf32_Ehdr *)0x14)" ( (binary_expression "param_4 < (Elf32_Ehdr *)0x14" identifier < (cast_expression "(Elf32_Ehdr *)0x14" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar32 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;\n    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);\n    uVar42 = uVar43;\n    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }\n    uVar42 = uVar17 << 0x10 | uVar42;\n    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);\n    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }\n    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar18 = (Elf32_Ehdr *)lVar2;\n    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n    uVar17 = uVar42;\n    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }\n    *(uint *)(puVar37 + -0x44) = uVar17;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);\n    pEVar30 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);\n    if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar17 = *(int *)(puVar37 + -0x50) + 4;\n    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);\n    *(uint *)(puVar37 + -0x70) = uVar17;\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }\n    uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n    pEVar18 = pEVar20;\n    FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);\n    puVar35 = *(undefined **)(puVar37 + -0x90);\n    pEVar30 = pEVar32;\n    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }\n    puVar4 = *(undefined4 **)(puVar37 + -100);\n    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);\n    pEVar18 = (Elf32_Ehdr *)*puVar4;\n    pEVar28 = param_6;\n    puVar10 = puVar23;\n    if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar28 = pEVar18;\n    param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);\n    iVar11 = 0x1f - (int)param_1;\n    param_3 = pEVar30;\n    if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }\nLAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);\n    piVar6 = *(int **)(puVar37 + -0x58);\n    if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\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 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;" (assignment_expression "*(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion" (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" * (cast_expression "(undefined4 *)(puVar37 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -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 "pEVar32 = pEVar5;" (assignment_expression "pEVar32 = pEVar5" identifier = identifier) ;) (if_statement "if ((int)pEVar5 < 0) {\n      pEVar32 = (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      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;" (assignment_expression "pEVar32 = (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 **)(puVar37 + -0x78) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x78)" ( (binary_expression "puVar37 + -0x78" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\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      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }" { (expression_statement "pEVar20 = param_4;" (assignment_expression "pEVar20 = param_4" identifier = identifier) ;) (expression_statement "uVar44 = (**(code **)(puVar34 + 0x6c210))();" (assignment_expression "uVar44 = (**(code **)(puVar34 + 0x6c210))()" identifier = (call_expression "(**(code **)(puVar34 + 0x6c210))()" (parenthesized_expression "(**(code **)(puVar34 + 0x6c210))" ( (pointer_expression "**(code **)(puVar34 + 0x6c210)" * (pointer_expression "*(code **)(puVar34 + 0x6c210)" * (cast_expression "(code **)(puVar34 + 0x6c210)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar34 + 0x6c210)" ( (binary_expression "puVar34 + 0x6c210" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_00031d4c:\n      uVar17 = (uint)uVar44;" statement_identifier : (expression_statement "uVar17 = (uint)uVar44;" (assignment_expression "uVar17 = (uint)uVar44" identifier = (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1)" ( (binary_expression "pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1" (binary_expression "pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20)" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" ( (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar3 = puVar10;" (assignment_expression "puVar3 = puVar10" identifier = identifier) ;) }) (else_clause "else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }" else (compound_statement "{\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar32 * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar32 * 4)" ( (binary_expression "(int)pEVar32 * 4" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }" if (parenthesized_expression "(param_4 == (Elf32_Ehdr *)0x0)" ( (binary_expression "param_4 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }" { (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (if_statement "if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }" if (parenthesized_expression "(pEVar32 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar32 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }" { (expression_statement "uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);" (assignment_expression "uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1)" identifier = (call_expression "(uint)(**(int **)(puVar37 + -0x4c) != 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(**(int **)(puVar37 + -0x4c) != 1)" ( (binary_expression "**(int **)(puVar37 + -0x4c) != 1" (pointer_expression "**(int **)(puVar37 + -0x4c)" * (pointer_expression "*(int **)(puVar37 + -0x4c)" * (cast_expression "(int **)(puVar37 + -0x4c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) ))))) != number_literal) )))) ;) })) (expression_statement "piVar14 = *(int **)(puVar37 + -0x54);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" identifier = (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "piVar14[1] = uVar17;" (assignment_expression "piVar14[1] = uVar17" (subscript_expression "piVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)piVar14[2] = 1;" (assignment_expression "*(undefined4 *)piVar14[2] = 1" (pointer_expression "*(undefined4 *)piVar14[2]" * (cast_expression "(undefined4 *)piVar14[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar14[2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "puVar3 = puVar37 + -0xa8;" (assignment_expression "puVar3 = puVar37 + -0xa8" identifier = (binary_expression "puVar37 + -0xa8" identifier + number_literal)) ;) (goto_statement "goto LAB_00031764;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar37 + -0x40) = 0;" (assignment_expression "*(undefined4 *)(puVar37 + -0x40) = 0" (pointer_expression "*(undefined4 *)(puVar37 + -0x40)" * (cast_expression "(undefined4 *)(puVar37 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x40)" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;" (assignment_expression "*(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum" (pointer_expression "*(word **)(puVar37 + -0x50)" * (cast_expression "(word **)(puVar37 + -0x50)" ( (type_descriptor "word **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) = (pointer_expression "&pEVar28[-1].e_shnum" & (field_expression "pEVar28[-1].e_shnum" (subscript_expression "pEVar28[-1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum)" ( (binary_expression "*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum" (pointer_expression "*(int *)(puVar37 + -0x4c)" * (cast_expression "(int *)(puVar37 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) )))) + (cast_expression "(int)&pEVar28[-1].e_shnum" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar28[-1].e_shnum" & (field_expression "pEVar28[-1].e_shnum" (subscript_expression "pEVar28[-1]" identifier [ number_literal ]) . field_identifier)))) ))))) ;) (if_statement "if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 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        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }" { (expression_statement "iVar11 = 0x20;" (assignment_expression "iVar11 = 0x20" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 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          iVar11 = 0x18;\n        }" { (expression_statement "iVar11 = 0x18;" (assignment_expression "iVar11 = 0x18" identifier = number_literal) ;) })) (expression_statement "iVar13 = 9;" (assignment_expression "iVar13 = 9" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 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          iVar13 = 1;\n        }" { (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }" else (compound_statement "{\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }" { (expression_statement "iVar11 = 0x10;" (assignment_expression "iVar11 = 0x10" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 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          iVar11 = 8;\n        }" { (expression_statement "iVar11 = 8;" (assignment_expression "iVar11 = 8" identifier = number_literal) ;) })) (expression_statement "iVar13 = 0x19;" (assignment_expression "iVar13 = 0x19" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 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          iVar13 = 0x11;\n        }" { (expression_statement "iVar13 = 0x11;" (assignment_expression "iVar13 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar34 + 0x6bdbc)" * (cast_expression "(Elf32_Ehdr **)(puVar34 + 0x6bdbc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar34 + 0x6bdbc)" ( (binary_expression "puVar34 + 0x6bdbc" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];" (assignment_expression "iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1]" identifier = (binary_expression "iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1]" identifier - (cast_expression "(uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1]" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) [ (binary_expression "((uint)pEVar20 >> iVar13) - 1" (parenthesized_expression "((uint)pEVar20 >> iVar13)" ( (binary_expression "(uint)pEVar20 >> iVar13" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) )) - number_literal) ]))))) ;) (expression_statement "*(int *)(puVar37 + -0x6c) = iVar11;" (assignment_expression "*(int *)(puVar37 + -0x6c) = iVar11" (pointer_expression "*(int *)(puVar37 + -0x6c)" * (cast_expression "(int *)(puVar37 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x6c)" ( (binary_expression "puVar37 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = puVar37 + -0xa8;" (assignment_expression "puVar10 = puVar37 + -0xa8" identifier = (binary_expression "puVar37 + -0xa8" identifier + number_literal)) ;) (if_statement "if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }" { (if_statement "if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }" if (parenthesized_expression "(*(int *)(puVar37 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar37 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar37 + -0x50) + 4U" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }" { (expression_statement "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar37 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "puVar38 = puVar37 + iVar11 + -0xa8;" (assignment_expression "puVar38 = puVar37 + iVar11 + -0xa8" identifier = (binary_expression "puVar37 + iVar11 + -0xa8" (binary_expression "puVar37 + iVar11" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar37 + iVar11 + -0x90)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + iVar11 + -0x90)" ( (binary_expression "puVar37 + iVar11 + -0x90" (binary_expression "puVar37 + iVar11" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }" else (compound_statement "{\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40)" (parenthesized_expression "(**(code **)(puVar34 + 0x6bf20))" ( (pointer_expression "**(code **)(puVar34 + 0x6bf20)" * (pointer_expression "*(code **)(puVar34 + 0x6bf20)" * (cast_expression "(code **)(puVar34 + 0x6bf20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar34 + 0x6bf20)" ( (binary_expression "puVar34 + 0x6bf20" identifier + number_literal) ))))) )) (argument_list "(puVar37 + -0x40)" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) }))) (expression_statement "(**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );" (call_expression "(**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  )" (parenthesized_expression "(**(code **)(puVar35 + -0x7ad4))" ( (pointer_expression "**(code **)(puVar35 + -0x7ad4)" * (pointer_expression "*(code **)(puVar35 + -0x7ad4)" * (cast_expression "(code **)(puVar35 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7ad4)" ( (binary_expression "puVar35 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  )" ( identifier , (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" * (cast_expression "(undefined4 *)(puVar37 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(puVar37 + -0x6c)" * (cast_expression "(undefined4 *)(puVar37 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x6c)" ( (binary_expression "puVar37 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x4c)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x4c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" * (cast_expression "(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" ( (binary_expression "pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1" (binary_expression "pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50)" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "puVar10 = puVar38;" (assignment_expression "puVar10 = puVar38" identifier = identifier) ;) })) (if_statement "if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }" if (parenthesized_expression "(pEVar32 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar32 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }" else (compound_statement "{\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }" { (expression_statement "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4)" ( (binary_expression "*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4" (binary_expression "*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50)" (pointer_expression "*(int *)(puVar37 + -0x4c)" * (cast_expression "(int *)(puVar37 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) ))))) + number_literal) ))))) ;) }))) (expression_statement "pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar20 >> 0x10)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar20 >> 0x10)" ( (binary_expression "(uint)pEVar20 >> 0x10" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }" if (parenthesized_expression "(pEVar18 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar18 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar42 = ~(uint)pEVar20 / (uint)pEVar18;" (assignment_expression "uVar42 = ~(uint)pEVar20 / (uint)pEVar18" identifier = (binary_expression "~(uint)pEVar20 / (uint)pEVar18" (unary_expression "~(uint)pEVar20" ~ (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) / (cast_expression "(uint)pEVar18" ( (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 * uVar42);" (assignment_expression "in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42)" identifier = (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar42)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar42)" ( (binary_expression "in_t2 * uVar42" identifier * identifier) )))) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff)" ( (binary_expression "~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff" (binary_expression "~(uint)pEVar20 % (uint)pEVar18 << 0x10" (binary_expression "~(uint)pEVar20 % (uint)pEVar18" (unary_expression "~(uint)pEVar20" ~ (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) % (cast_expression "(uint)pEVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) | number_literal) )))) ;) (expression_statement "uVar17 = uVar42;" (assignment_expression "uVar17 = uVar42" identifier = identifier) ;) (expression_statement "in_t1 = pEVar27;" (assignment_expression "in_t1 = pEVar27" identifier = identifier) ;) (expression_statement "puVar3 = puVar10;" (assignment_expression "puVar3 = puVar10" identifier = identifier) ;) (if_statement "if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }" if (parenthesized_expression "(pEVar30 < in_t3)" ( (binary_expression "pEVar30 < in_t3" identifier < identifier) )) (compound_statement "{\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));" (assignment_expression "pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (binary_expression "pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar30->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + -2)" ( (binary_expression "pEVar30->e_ident_magic_str + -2" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar17 = uVar42 - 1;" (assignment_expression "uVar17 = uVar42 - 1" identifier = (binary_expression "uVar42 - 1" identifier - number_literal)) ;) (if_statement "if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;" if (parenthesized_expression "((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))" ( (binary_expression "(pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3)" (parenthesized_expression "(pEVar20 <= pEVar30)" ( (binary_expression "pEVar20 <= pEVar30" identifier <= identifier) )) && (parenthesized_expression "(uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3)" ( (comma_expression "uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3" (assignment_expression "uVar44 = CONCAT44(pEVar30,uVar42 - 2)" identifier = (call_expression "CONCAT44(pEVar30,uVar42 - 2)" identifier (argument_list "(pEVar30,uVar42 - 2)" ( identifier , (binary_expression "uVar42 - 2" identifier - number_literal) )))) , (binary_expression "pEVar30 < in_t3" identifier < identifier)) ))) )) (goto_statement "goto LAB_00031d4c;" goto statement_identifier ;)) })) }))) (if_statement "if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }" if (parenthesized_expression "(pEVar18 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar18 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;" (assignment_expression "uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18" identifier = (binary_expression "(uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18" (call_expression "(uint)((int)pEVar30 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar30 - (int)in_t3)" ( (binary_expression "(int)pEVar30 - (int)in_t3" (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / (cast_expression "(uint)pEVar18" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff)" ( (binary_expression "(uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff" (binary_expression "(uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10" (binary_expression "(uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18" (call_expression "(uint)((int)pEVar30 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar30 - (int)in_t3)" ( (binary_expression "(int)pEVar30 - (int)in_t3" (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) % (cast_expression "(uint)pEVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) | number_literal) )))) ;) (expression_statement "uVar42 = uVar43;" (assignment_expression "uVar42 = uVar43" identifier = identifier) ;) (if_statement "if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }" if (parenthesized_expression "((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))))))" ( (binary_expression "(pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))" (parenthesized_expression "(pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43))" ( (binary_expression "pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)" identifier < (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar43)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar43)" ( (binary_expression "in_t2 * uVar43" identifier * identifier) )))) )) && (parenthesized_expression "(((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))" ( (parenthesized_expression "((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))))" ( (binary_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))" (binary_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20" (cast_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (binary_expression "pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar30->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + -2)" ( (binary_expression "pEVar30->e_ident_magic_str + -2" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) ))) < identifier) || (parenthesized_expression "(uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))" ( (comma_expression "uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (assignment_expression "uVar42 = uVar43 - 2" identifier = (binary_expression "uVar43 - 2" identifier - number_literal)) , (binary_expression "(Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar43)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t2 * uVar43)" ( (binary_expression "in_t2 * uVar43" identifier * identifier) ))) <= (cast_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (binary_expression "pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar30->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + -2)" ( (binary_expression "pEVar30->e_ident_magic_str + -2" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) ))))) ))) )) ))) )) (compound_statement "{\n      uVar42 = uVar43 - 1;\n    }" { (expression_statement "uVar42 = uVar43 - 1;" (assignment_expression "uVar42 = uVar43 - 1" identifier = (binary_expression "uVar43 - 1" identifier - number_literal)) ;) })) (expression_statement "uVar42 = uVar17 << 0x10 | uVar42;" (assignment_expression "uVar42 = uVar17 << 0x10 | uVar42" identifier = (binary_expression "uVar17 << 0x10 | uVar42" (binary_expression "uVar17 << 0x10" identifier << number_literal) | identifier)) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1)" ( (binary_expression "in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1" (binary_expression "in_t1->e_ident_magic_str + uVar42 * (int)pEVar20" (field_expression "in_t1->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "uVar42 * (int)pEVar20" identifier * (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier))) + number_literal) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);" (assignment_expression "lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27)" identifier = (binary_expression "(ulonglong)uVar42 * ZEXT48(pEVar27)" (cast_expression "(ulonglong)uVar42" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(pEVar27)" identifier (argument_list "(pEVar27)" ( identifier ))))) ;) (if_statement "if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }" if (parenthesized_expression "(pEVar30 < in_t1)" ( (binary_expression "pEVar30 < in_t1" identifier < identifier) )) (compound_statement "{\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }" { (expression_statement "uVar17 = pEVar30 < pEVar20 ^ 1;" (assignment_expression "uVar17 = pEVar30 < pEVar20 ^ 1" identifier = (binary_expression "pEVar30 < pEVar20 ^ 1" (binary_expression "pEVar30 < pEVar20" identifier < identifier) ^ number_literal)) ;) (expression_statement "pEVar18 = pEVar20;" (assignment_expression "pEVar18 = pEVar20" identifier = identifier) ;) (if_statement "if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }" { (expression_statement "pEVar18 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "uVar42 = (uVar42 - 1) - uVar17;" (assignment_expression "uVar42 = (uVar42 - 1) - uVar17" identifier = (binary_expression "(uVar42 - 1) - uVar17" (parenthesized_expression "(uVar42 - 1)" ( (binary_expression "uVar42 - 1" identifier - number_literal) )) - identifier)) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));" (assignment_expression "pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20))" ( (binary_expression "(int)pEVar30 + (-(int)pEVar18 - (int)pEVar20)" (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar18 - (int)pEVar20)" ( (binary_expression "-(int)pEVar18 - (int)pEVar20" (unary_expression "-(int)pEVar18" - (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier)) - (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);" (assignment_expression "lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27)" identifier = (binary_expression "(ulonglong)uVar42 * ZEXT48(pEVar27)" (cast_expression "(ulonglong)uVar42" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(pEVar27)" identifier (argument_list "(pEVar27)" ( identifier ))))) ;) })) (expression_statement "pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);" (assignment_expression "pEVar27 = (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 "pEVar18 = (Elf32_Ehdr *)lVar2;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)lVar2" identifier = (cast_expression "(Elf32_Ehdr *)lVar2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" ( (binary_expression "pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar30->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + -2)" ( (binary_expression "pEVar30->e_ident_magic_str + -2" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar17 = uVar42;" (assignment_expression "uVar17 = uVar42" identifier = identifier) ;) (if_statement "if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }" if (parenthesized_expression "(((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18))))" ( (binary_expression "((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))" (parenthesized_expression "((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30))" ( (binary_expression "(pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)" (parenthesized_expression "(pEVar30 < pEVar27)" ( (binary_expression "pEVar30 < pEVar27" identifier < identifier) )) && (parenthesized_expression "(uVar17 = uVar42 - 1, pEVar20 <= pEVar30)" ( (comma_expression "uVar17 = uVar42 - 1, pEVar20 <= pEVar30" (assignment_expression "uVar17 = uVar42 - 1" identifier = (binary_expression "uVar42 - 1" identifier - number_literal)) , (binary_expression "pEVar20 <= pEVar30" identifier <= identifier)) ))) )) && (parenthesized_expression "((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))" ( (parenthesized_expression "(pEVar20 < pEVar30 || (in_t1 <= pEVar18))" ( (binary_expression "pEVar20 < pEVar30 || (in_t1 <= pEVar18)" (binary_expression "pEVar20 < pEVar30" identifier < identifier) || (parenthesized_expression "(in_t1 <= pEVar18)" ( (binary_expression "in_t1 <= pEVar18" identifier <= identifier) ))) )) ))) )) (compound_statement "{\n      uVar17 = uVar42 - 2;\n    }" { (expression_statement "uVar17 = uVar42 - 2;" (assignment_expression "uVar17 = uVar42 - 2" identifier = (binary_expression "uVar42 - 2" identifier - number_literal)) ;) })) (expression_statement "*(uint *)(puVar37 + -0x44) = uVar17;" (assignment_expression "*(uint *)(puVar37 + -0x44) = uVar17" (pointer_expression "*(uint *)(puVar37 + -0x44)" * (cast_expression "(uint *)(puVar37 + -0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x44)" ( (binary_expression "puVar37 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar37 + -0x5c) + 4" (pointer_expression "*(int *)(puVar37 + -0x5c)" * (cast_expression "(int *)(puVar37 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x5c)" ( (binary_expression "puVar37 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar30 = pEVar27;" (assignment_expression "pEVar30 = pEVar27" identifier = identifier) ;) (if_statement "if ((int)pEVar27 < 0) {\n      pEVar30 = (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      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;" (assignment_expression "pEVar30 = (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 "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x5c) + 8)" ( (binary_expression "*(int *)(puVar37 + -0x5c) + 8" (pointer_expression "*(int *)(puVar37 + -0x5c)" * (cast_expression "(int *)(puVar37 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x5c)" ( (binary_expression "puVar37 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }" if (parenthesized_expression "((int)pEVar30 <= (int)pEVar32)" ( (binary_expression "(int)pEVar30 <= (int)pEVar32" (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }" { (if_statement "if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\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 **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }" { (expression_statement "*(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -100) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -100)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -100)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -100)" ( (binary_expression "puVar37 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;" (assignment_expression "*(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U" (pointer_expression "*(uint *)(puVar37 + -0x70)" * (cast_expression "(uint *)(puVar37 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar37 + -0x50) + 4U" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar37 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar37 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar37 + -0x50) + 4U" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) ))))) ;) (goto_statement "goto LAB_000317f8;" goto statement_identifier ;) })) (labeled_statement "LAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);" statement_identifier : (expression_statement "piVar14 = *(int **)(puVar37 + -0x40);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x40)" identifier = (pointer_expression "*(int **)(puVar37 + -0x40)" * (cast_expression "(int **)(puVar37 + -0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x40)" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar37 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar37 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar37 + -0x54) + 4" (pointer_expression "*(int *)(puVar37 + -0x54)" * (cast_expression "(int *)(puVar37 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (if_statement "if (piVar14 == (int *)0x0) goto LAB_00031764;" if (parenthesized_expression "(piVar14 == (int *)0x0)" ( (binary_expression "piVar14 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00031764;" goto statement_identifier ;)) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7a28);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7a28)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7a28)" * (cast_expression "(code **)(puVar35 + -0x7a28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7a28)" ( (binary_expression "puVar35 + -0x7a28" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031708:\n      (*pcVar39)();" statement_identifier : (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00031764;" goto statement_identifier ;) })) (expression_statement "uVar17 = *(int *)(puVar37 + -0x50) + 4;" (assignment_expression "uVar17 = *(int *)(puVar37 + -0x50) + 4" identifier = (binary_expression "*(int *)(puVar37 + -0x50) + 4" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(uVar17 < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar17 < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < 0x7f01)" ( (binary_expression "uVar17 < 0x7f01" identifier < number_literal) ))))) ;) (expression_statement "*(uint *)(puVar37 + -0x70) = uVar17;" (assignment_expression "*(uint *)(puVar37 + -0x70) = uVar17" (pointer_expression "*(uint *)(puVar37 + -0x70)" * (cast_expression "(uint *)(puVar37 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\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      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }" { (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7d50);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7d50)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7d50)" * (cast_expression "(code **)(puVar35 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7d50)" ( (binary_expression "puVar35 + -0x7d50" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x60)" ( (binary_expression "puVar37 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);" (assignment_expression "puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17)" identifier = (cast_expression "(undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar39)(puVar37 + -0x40,uVar17)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(puVar37 + -0x40,uVar17)" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) , identifier ))))) ;) (expression_statement "pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);" (assignment_expression "pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x60)" ( (binary_expression "puVar37 + -0x60" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar37 + -100) = puVar10;" (assignment_expression "*(undefined1 **)(puVar37 + -100) = puVar10" (pointer_expression "*(undefined1 **)(puVar37 + -100)" * (cast_expression "(undefined1 **)(puVar37 + -100)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -100)" ( (binary_expression "puVar37 + -100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }" else (compound_statement "{\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }" { (expression_statement "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar37 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "puVar10 = puVar3 + iVar11 + 0x18;" (assignment_expression "puVar10 = puVar3 + iVar11 + 0x18" identifier = (binary_expression "puVar3 + iVar11 + 0x18" (binary_expression "puVar3 + iVar11" identifier + identifier) + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar37 + -100) = puVar10;" (assignment_expression "*(undefined1 **)(puVar37 + -100) = puVar10" (pointer_expression "*(undefined1 **)(puVar37 + -100)" * (cast_expression "(undefined1 **)(puVar37 + -100)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -100)" ( (binary_expression "puVar37 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3 = puVar3 + iVar11;" (assignment_expression "puVar3 = puVar3 + iVar11" identifier = (binary_expression "puVar3 + iVar11" identifier + identifier)) ;) }))) (expression_statement "uVar25 = *(undefined4 *)(puVar37 + -0x4c);" (assignment_expression "uVar25 = *(undefined4 *)(puVar37 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" * (cast_expression "(undefined4 *)(puVar37 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x14) = puVar37 + -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 "puVar37 + -0x44" 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 "pEVar18 = pEVar20;" (assignment_expression "pEVar18 = pEVar20" identifier = identifier) ;) (expression_statement "FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);" (call_expression "FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25)" identifier (argument_list "(puVar10,pEVar20,pEVar30,uVar25)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar30 = pEVar32;" (assignment_expression "pEVar30 = pEVar32" identifier = identifier) ;) (if_statement "if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }" if (parenthesized_expression "(*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0)" ( (binary_expression "*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0" (pointer_expression "*(int *)(puVar10 + *(int *)(puVar37 + -0x50))" * (cast_expression "(int *)(puVar10 + *(int *)(puVar37 + -0x50))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + *(int *)(puVar37 + -0x50))" ( (binary_expression "puVar10 + *(int *)(puVar37 + -0x50)" identifier + (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) ))))) )))) == number_literal) )) (compound_statement "{\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }" { (expression_statement "puVar10 = puVar10 + *(int *)(puVar37 + -0x70);" (assignment_expression "puVar10 = puVar10 + *(int *)(puVar37 + -0x70)" identifier = (binary_expression "puVar10 + *(int *)(puVar37 + -0x70)" identifier + (pointer_expression "*(int *)(puVar37 + -0x70)" * (cast_expression "(int *)(puVar37 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) )))))) ;) (do_statement "do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);" do (compound_statement "{\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);" (assignment_expression "pEVar30 = (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) )))) ;) (if_statement "if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;" 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)) )) (goto_statement "goto LAB_000316f4;" goto statement_identifier ;)) (expression_statement "piVar14 = (int *)(puVar10 + -8);" (assignment_expression "piVar14 = (int *)(puVar10 + -8)" identifier = (cast_expression "(int *)(puVar10 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar32 << 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar32 << 3)" ( (binary_expression "(int)pEVar32 << 3" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "puVar10 = puVar10 + -4;" (assignment_expression "puVar10 = puVar10 + -4" identifier = (binary_expression "puVar10 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar14 == 0)" ( (binary_expression "*piVar14 == 0" (pointer_expression "*piVar14" * identifier) == number_literal) )) ;) })) (labeled_statement "LAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }" statement_identifier : (if_statement "if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }" if (parenthesized_expression "((int)pEVar32 * 8 + 4U < 0x7f01)" ( (binary_expression "(int)pEVar32 * 8 + 4U < 0x7f01" (binary_expression "(int)pEVar32 * 8 + 4U" (binary_expression "(int)pEVar32 * 8" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) < number_literal) )) (compound_statement "{\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }" { (expression_statement "iVar11 = -((int)pEVar32 * 8 + 8);" (assignment_expression "iVar11 = -((int)pEVar32 * 8 + 8)" identifier = (unary_expression "-((int)pEVar32 * 8 + 8)" - (parenthesized_expression "((int)pEVar32 * 8 + 8)" ( (binary_expression "(int)pEVar32 * 8 + 8" (binary_expression "(int)pEVar32 * 8" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar11 + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar11 + 0x18)" ( (binary_expression "puVar3 + iVar11 + 0x18" (binary_expression "puVar3 + iVar11" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar3 = puVar3 + iVar11;" (assignment_expression "puVar3 = puVar3 + iVar11" identifier = (binary_expression "puVar3 + iVar11" identifier + identifier)) ;) }) (else_clause "else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }" else (compound_statement "{\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }" { (expression_statement "pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40)" (parenthesized_expression "(**(code **)(puVar35 + -0x7d50))" ( (pointer_expression "**(code **)(puVar35 + -0x7d50)" * (pointer_expression "*(code **)(puVar35 + -0x7d50)" * (cast_expression "(code **)(puVar35 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7d50)" ( (binary_expression "puVar35 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar37 + -0x40)" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) })))) (if_statement "if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\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      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }" { (expression_statement "param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));" (assignment_expression "param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70))" identifier = (cast_expression "(Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70))" (parenthesized_expression "(**(code **)(puVar35 + -0x7d50))" ( (pointer_expression "**(code **)(puVar35 + -0x7d50)" * (pointer_expression "*(code **)(puVar35 + -0x7d50)" * (cast_expression "(code **)(puVar35 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7d50)" ( (binary_expression "puVar35 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70))" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar37 + -0x70)" * (cast_expression "(undefined4 *)(puVar37 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) )))) ))))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }" else (compound_statement "{\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }" { (expression_statement "param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);" (assignment_expression "param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (binary_expression "puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18" (binary_expression "puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar37 + -0x70) + 7U" (pointer_expression "*(int *)(puVar37 + -0x70)" * (cast_expression "(int *)(puVar37 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);" (assignment_expression "puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" identifier = (binary_expression "puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar37 + -0x70) + 7U" (pointer_expression "*(int *)(puVar37 + -0x70)" * (cast_expression "(int *)(puVar37 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) ))))) ;) }))) (if_statement "if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }" if (parenthesized_expression "(*(int *)(puVar37 + -0x50) + 8U < 0x7f01)" ( (binary_expression "*(int *)(puVar37 + -0x50) + 8U < 0x7f01" (binary_expression "*(int *)(puVar37 + -0x50) + 8U" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }" { (expression_statement "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);" (assignment_expression "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8" (binary_expression "*(int *)(puVar37 + -0x50) + 0xfU" (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;" (assignment_expression "*(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18" (pointer_expression "*(undefined1 **)(puVar37 + -0x74)" * (cast_expression "(undefined1 **)(puVar37 + -0x74)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x74)" ( (binary_expression "puVar37 + -0x74" identifier + number_literal) )))) = (binary_expression "puVar3 + iVar11 + 0x18" (binary_expression "puVar3 + iVar11" identifier + identifier) + number_literal)) ;) (expression_statement "puVar3 = puVar3 + iVar11;" (assignment_expression "puVar3 = puVar3 + iVar11" identifier = (binary_expression "puVar3 + iVar11" identifier + identifier)) ;) }) (else_clause "else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }" else (compound_statement "{\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }" { (expression_statement "uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);" (assignment_expression "uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40)" identifier = (call_expression "(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40)" (parenthesized_expression "(**(code **)(puVar35 + -0x7d50))" ( (pointer_expression "**(code **)(puVar35 + -0x7d50)" * (pointer_expression "*(code **)(puVar35 + -0x7d50)" * (cast_expression "(code **)(puVar35 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7d50)" ( (binary_expression "puVar35 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar37 + -0x40)" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) )))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar37 + -0x74) = uVar25;" (assignment_expression "*(undefined4 *)(puVar37 + -0x74) = uVar25" (pointer_expression "*(undefined4 *)(puVar37 + -0x74)" * (cast_expression "(undefined4 *)(puVar37 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x74)" ( (binary_expression "puVar37 + -0x74" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar4 = *(undefined4 **)(puVar37 + -100);" (assignment_expression "puVar4 = *(undefined4 **)(puVar37 + -100)" identifier = (pointer_expression "*(undefined4 **)(puVar37 + -100)" * (cast_expression "(undefined4 **)(puVar37 + -100)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -100)" ( (binary_expression "puVar37 + -100" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);" (assignment_expression "puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" 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 "pEVar18 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)*puVar4" identifier = (cast_expression "(Elf32_Ehdr *)*puVar4" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "pEVar28 = param_6;" (assignment_expression "pEVar28 = param_6" identifier = identifier) ;) (expression_statement "puVar10 = puVar23;" (assignment_expression "puVar10 = puVar23" identifier = identifier) ;) (if_statement "if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }" if (parenthesized_expression "(puVar23 != (undefined1 *)0x0)" ( (binary_expression "puVar23 != (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 **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }" { (do_statement "do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);" do (compound_statement "{\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->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 **)pEVar28 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)pEVar28 = pEVar18" (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 "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)*puVar4" identifier = (cast_expression "(Elf32_Ehdr *)*puVar4" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * 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)))) ;) }) while (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3)" ( (binary_expression "param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3" (binary_expression "param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&pEVar30[-1].e_shstrndx * 4" (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)) + number_literal) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)pEVar28 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)pEVar28 = pEVar18" (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 "param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);" (assignment_expression "param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1])" identifier = (cast_expression "(Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1])" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1])" ( (binary_expression "0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]" number_literal - (cast_expression "(uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) [ (binary_expression "((uint)param_4 >> 1) - 1" (parenthesized_expression "((uint)param_4 >> 1)" ( (binary_expression "(uint)param_4 >> 1" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) - number_literal) ])))) )))) ;) (expression_statement "iVar11 = 0x1f - (int)param_1;" (assignment_expression "iVar11 = 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 = pEVar30;" (assignment_expression "param_3 = pEVar30" identifier = identifier) ;) (if_statement "if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }" { (if_statement "if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }" if (parenthesized_expression "(pEVar32 == pEVar30)" ( (binary_expression "pEVar32 == pEVar30" identifier == identifier) )) (compound_statement "{\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }" { (expression_statement "pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;" (assignment_expression "pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1" identifier = (binary_expression "param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)pEVar32 * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar32 * 4" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;" (assignment_expression "iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4" identifier = (binary_expression "*(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4" (pointer_expression "*(int *)(puVar37 + -0x4c)" * (cast_expression "(int *)(puVar37 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) )))) + (binary_expression "(int)pEVar32 * 4" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);" do (compound_statement "{\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        }" { (expression_statement "pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);" (assignment_expression "pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(iVar11 + -4)" * (cast_expression "(Elf32_Ehdr **)(iVar11 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = puVar23 + -1;" (assignment_expression "puVar23 = puVar23 + -1" identifier = (binary_expression "puVar23 + -1" identifier + number_literal)) ;) (if_statement "if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }" if (parenthesized_expression "(*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18)" ( (binary_expression "*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18" (pointer_expression "*(Elf32_Ehdr **)(pcVar9 + -4)" * (cast_expression "(Elf32_Ehdr **)(pcVar9 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + -4)" ( (binary_expression "pcVar9 + -4" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }" { (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7b2c);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7b2c)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7b2c)" * (cast_expression "(code **)(puVar35 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7b2c)" ( (binary_expression "puVar35 + -0x7b2c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;" if (parenthesized_expression "(pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4))" ( (binary_expression "pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)" identifier < (pointer_expression "*(Elf32_Ehdr **)(pcVar9 + -4)" * (cast_expression "(Elf32_Ehdr **)(pcVar9 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + -4)" ( (binary_expression "pcVar9 + -4" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00031d88;" goto statement_identifier ;)) (goto_statement "goto LAB_000318d0;" goto statement_identifier ;) })) (expression_statement "pcVar9 = pcVar9 + -4;" (assignment_expression "pcVar9 = pcVar9 + -4" identifier = (binary_expression "pcVar9 + -4" identifier + number_literal)) ;) (expression_statement "iVar11 = iVar11 + -4;" (assignment_expression "iVar11 = iVar11 + -4" identifier = (binary_expression "iVar11 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar23 != (undefined1 *)0xffffffff)" ( (binary_expression "puVar23 != (undefined1 *)0xffffffff" identifier != (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7b2c);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7b2c)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7b2c)" * (cast_expression "(code **)(puVar35 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7b2c)" ( (binary_expression "puVar35 + -0x7b2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031d88:\n        pEVar18 = param_6;" statement_identifier : (expression_statement "pEVar18 = param_6;" (assignment_expression "pEVar18 = param_6" identifier = identifier) ;)) (expression_statement "(*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);" (call_expression "(*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" * (cast_expression "(undefined4 *)(puVar37 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }" else (compound_statement "{\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);" (assignment_expression "pEVar28 = (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) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + 8) = param_4;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + 8) = param_4" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + 8)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 8)" ( (binary_expression "puVar37 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);" (assignment_expression "param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1)" identifier = (cast_expression "(Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)param_4 << ((uint)param_1 & 0x1f)) << 1)" ( (binary_expression "((int)param_4 << ((uint)param_1 & 0x1f)) << 1" (parenthesized_expression "((int)param_4 << ((uint)param_1 & 0x1f))" ( (binary_expression "(int)param_4 << ((uint)param_1 & 0x1f)" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) 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 **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;" (assignment_expression "*(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1" (pointer_expression "*(char **)(puVar37 + -0x84)" * (cast_expression "(char **)(puVar37 + -0x84)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x84)" ( (binary_expression "puVar37 + -0x84" identifier + number_literal) )))) = (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50)" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) ))))) + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;" (assignment_expression "*(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44" (pointer_expression "*(undefined1 **)(puVar37 + -0x7c)" * (cast_expression "(undefined1 **)(puVar37 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x7c)" ( (binary_expression "puVar37 + -0x7c" identifier + number_literal) )))) = (binary_expression "puVar37 + -0x44" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;" (assignment_expression "*(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30" (pointer_expression "*(int *)(puVar37 + -0x80)" * (cast_expression "(int *)(puVar37 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x80)" ( (binary_expression "puVar37 + -0x80" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar35 + -0x7fcc) + 0xf30" (pointer_expression "*(int *)(puVar35 + -0x7fcc)" * (cast_expression "(int *)(puVar35 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x7fcc)" ( (binary_expression "puVar35 + -0x7fcc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;" (assignment_expression "*(undefined4 *)(puVar37 + -0x60) = 0x3fffffff" (pointer_expression "*(undefined4 *)(puVar37 + -0x60)" * (cast_expression "(undefined4 *)(puVar37 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x60)" ( (binary_expression "puVar37 + -0x60" identifier + number_literal) )))) = number_literal) ;) (do_statement "do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);" do (compound_statement "{\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      }" { (expression_statement "pEVar18 = param_6;" (assignment_expression "pEVar18 = param_6" identifier = identifier) ;) (expression_statement "(**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);" (call_expression "(**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3)" (parenthesized_expression "(**(code **)(puVar35 + -0x7cac))" ( (pointer_expression "**(code **)(puVar35 + -0x7cac)" * (pointer_expression "*(code **)(puVar35 + -0x7cac)" * (cast_expression "(code **)(puVar35 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7cac)" ( (binary_expression "puVar35 + -0x7cac" identifier + number_literal) ))))) )) (argument_list "(pEVar20,param_6,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));" (assignment_expression "param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" identifier = (cast_expression "(Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" ( (binary_expression "(int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -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 *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" ( (binary_expression "*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1)" * (cast_expression "(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1)" ( (binary_expression "pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1" (binary_expression "pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4" (parenthesized_expression "((int)param_3 * 2 + *(int *)(puVar37 + -0x60))" ( (binary_expression "(int)param_3 * 2 + *(int *)(puVar37 + -0x60)" (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(puVar37 + -0x60)" * (cast_expression "(int *)(puVar37 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x60)" ( (binary_expression "puVar37 + -0x60" identifier + number_literal) ))))) )) * number_literal)) + number_literal) )))) == number_literal) )))) )))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }" if (parenthesized_expression "((int)param_3 < (int)pEVar32)" ( (binary_expression "(int)param_3 < (int)pEVar32" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }" { (expression_statement "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (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            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\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            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }" { (expression_statement "uVar22._0_1_ = pEVar20->e_ident_magic_num;" (assignment_expression "uVar22._0_1_ = pEVar20->e_ident_magic_num" (field_expression "uVar22._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar22._1_1_ = pEVar20->e_ident_magic_str[0];" (assignment_expression "uVar22._1_1_ = pEVar20->e_ident_magic_str[0]" (field_expression "uVar22._1_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[0]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar22._2_1_ = pEVar20->e_ident_magic_str[1];" (assignment_expression "uVar22._2_1_ = pEVar20->e_ident_magic_str[1]" (field_expression "uVar22._2_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[1]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar22._3_1_ = pEVar20->e_ident_magic_str[2];" (assignment_expression "uVar22._3_1_ = pEVar20->e_ident_magic_str[2]" (field_expression "uVar22._3_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[2]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" identifier = identifier) ;) (if_statement "if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }" if (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }" { (expression_statement "pbVar12 = &pEVar20->e_ident_class;" (assignment_expression "pbVar12 = &pEVar20->e_ident_class" identifier = (pointer_expression "&pEVar20->e_ident_class" & (field_expression "pEVar20->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);" do (compound_statement "{\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              }" { (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar22 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar22 >> 0x18)" ( (binary_expression "(uint)uVar22 >> 0x18" (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 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)uVar22 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar22 >> 0x10)" ( (binary_expression "(uint)uVar22 >> 0x10" (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 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)uVar22 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar22 >> 8)" ( (binary_expression "(uint)uVar22 >> 8" (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar22;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar22" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar22" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar12 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar12 + 4)" ( (binary_expression "pbVar12 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar22 = *(undefined4 *)pbVar12;" (assignment_expression "uVar22 = *(undefined4 *)pbVar12" identifier = (pointer_expression "*(undefined4 *)pbVar12" * (cast_expression "(undefined4 *)pbVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 "pbVar12 = (byte *)pEVar18;" (assignment_expression "pbVar12 = (byte *)pEVar18" identifier = (cast_expression "(byte *)pEVar18" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -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 *)(puVar37 + -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 *)(puVar37 + -0x60) * 4 + -5)" ( (binary_expression "param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5" (binary_expression "param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -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 *)(puVar37 + -0x60) * 4" (pointer_expression "*(int *)(puVar37 + -0x60)" * (cast_expression "(int *)(puVar37 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x60)" ( (binary_expression "puVar37 + -0x60" identifier + number_literal) )))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar22 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar22 >> 0x18)" ( (binary_expression "(uint)uVar22 >> 0x18" (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 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)uVar22 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar22 >> 0x10)" ( (binary_expression "(uint)uVar22 >> 0x10" (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 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)uVar22 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar22 >> 8)" ( (binary_expression "(uint)uVar22 >> 8" (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar22;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar22" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar22" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7d8c);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7d8c)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7d8c)" * (cast_expression "(code **)(puVar35 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7d8c)" ( (binary_expression "puVar35 + -0x7d8c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }" else (compound_statement "{\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }" { (expression_statement "uVar25 = *(undefined4 *)(puVar37 + -0x4c);" (assignment_expression "uVar25 = *(undefined4 *)(puVar37 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" * (cast_expression "(undefined4 *)(puVar37 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar39 = *(code **)(puVar37 + -0x80);" (assignment_expression "pcVar39 = *(code **)(puVar37 + -0x80)" identifier = (pointer_expression "*(code **)(puVar37 + -0x80)" * (cast_expression "(code **)(puVar37 + -0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x80)" ( (binary_expression "puVar37 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -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 *)(puVar37 + -0x74)" * (cast_expression "(undefined4 *)(puVar37 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x74)" ( (binary_expression "puVar37 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);" (assignment_expression "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c)" (pointer_expression "*(undefined4 *)(puVar3 + 0x10)" * (cast_expression "(undefined4 *)(puVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar37 + -0x7c)" * (cast_expression "(undefined4 *)(puVar37 + -0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x7c)" ( (binary_expression "puVar37 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar39)(pEVar20,param_3,uVar25,pEVar32);" (call_expression "(*pcVar39)(pEVar20,param_3,uVar25,pEVar32)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(pEVar20,param_3,uVar25,pEVar32)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar25._0_1_ = pEVar20->e_ident_magic_num;" (assignment_expression "uVar25._0_1_ = pEVar20->e_ident_magic_num" (field_expression "uVar25._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar25._1_1_ = pEVar20->e_ident_magic_str[0];" (assignment_expression "uVar25._1_1_ = pEVar20->e_ident_magic_str[0]" (field_expression "uVar25._1_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[0]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar25._2_1_ = pEVar20->e_ident_magic_str[1];" (assignment_expression "uVar25._2_1_ = pEVar20->e_ident_magic_str[1]" (field_expression "uVar25._2_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[1]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar25._3_1_ = pEVar20->e_ident_magic_str[2];" (assignment_expression "uVar25._3_1_ = pEVar20->e_ident_magic_str[2]" (field_expression "uVar25._3_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[2]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\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            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }" { (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "param_6->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 "param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 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)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 "param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 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)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 "param_6->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar25" (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)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }" else (compound_statement "{\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }" { (expression_statement "pEVar18 = pEVar28;" (assignment_expression "pEVar18 = pEVar28" identifier = identifier) ;) (expression_statement "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" identifier = identifier) ;) (expression_statement "pbVar12 = &pEVar20->e_ident_class;" (assignment_expression "pbVar12 = &pEVar20->e_ident_class" identifier = (pointer_expression "&pEVar20->e_ident_class" & (field_expression "pEVar20->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);" do (compound_statement "{\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            }" { (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar27->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 "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 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)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 "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 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)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 "pEVar27->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar25" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "param_3 = (Elf32_Ehdr *)(pbVar12 + 4);" (assignment_expression "param_3 = (Elf32_Ehdr *)(pbVar12 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar12 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar12 + 4)" ( (binary_expression "pbVar12 + 4" identifier + number_literal) )))) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar18[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar18[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar18[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar18[-1].e_shstrndx" & (field_expression "pEVar18[-1].e_shstrndx" (subscript_expression "pEVar18[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "uVar25 = *(undefined4 *)pbVar12;" (assignment_expression "uVar25 = *(undefined4 *)pbVar12" identifier = (pointer_expression "*(undefined4 *)pbVar12" * (cast_expression "(undefined4 *)pbVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 "pbVar12 = (byte *)param_3;" (assignment_expression "pbVar12 = (byte *)param_3" identifier = (cast_expression "(byte *)param_3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(pEVar18 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar18 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar37 + -0x84) = uVar25;" (assignment_expression "**(undefined4 **)(puVar37 + -0x84) = uVar25" (pointer_expression "**(undefined4 **)(puVar37 + -0x84)" * (pointer_expression "*(undefined4 **)(puVar37 + -0x84)" * (cast_expression "(undefined4 **)(puVar37 + -0x84)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x84)" ( (binary_expression "puVar37 + -0x84" identifier + number_literal) ))))) = identifier) ;) }))) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7d8c);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7d8c)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7d8c)" * (cast_expression "(code **)(puVar35 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7d8c)" ( (binary_expression "puVar35 + -0x7d8c" identifier + number_literal) ))))) ;) (expression_statement "pEVar18 = param_3;" (assignment_expression "pEVar18 = param_3" identifier = identifier) ;) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" identifier = identifier) ;) }))) (if_statement "if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\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          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }" { (expression_statement "uVar25 = *(undefined4 *)(puVar37 + -100);" (assignment_expression "uVar25 = *(undefined4 *)(puVar37 + -100)" identifier = (pointer_expression "*(undefined4 *)(puVar37 + -100)" * (cast_expression "(undefined4 *)(puVar37 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -100)" ( (binary_expression "puVar37 + -100" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30" (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 "pEVar18 = param_6;" (assignment_expression "pEVar18 = param_6" identifier = identifier) ;) (expression_statement "(*pcVar39)(pEVar20,param_6,param_3,uVar25);" (call_expression "(*pcVar39)(pEVar20,param_6,param_3,uVar25)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(pEVar20,param_6,param_3,uVar25)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));" (assignment_expression "param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" identifier = (cast_expression "(Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" ( (binary_expression "pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" (binary_expression "pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2)" (field_expression "pEVar30->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 *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" - (call_expression "(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" ( (binary_expression "*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1)" * (cast_expression "(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1)" ( (binary_expression "pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1" (binary_expression "pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4" (cast_expression "(int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60))" ( (binary_expression "pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)" (binary_expression "pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2)" (field_expression "pEVar30->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 *)(puVar37 + -0x60)" * (cast_expression "(int *)(puVar37 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x60)" ( (binary_expression "puVar37 + -0x60" identifier + number_literal) ))))) ))) * number_literal)) + number_literal) )))) == number_literal) ))))) )))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }" if (parenthesized_expression "((int)param_3 < (int)pEVar32)" ( (binary_expression "(int)param_3 < (int)pEVar32" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }" { (expression_statement "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (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_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\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              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }" { (expression_statement "uVar24._0_1_ = pEVar20->e_ident_magic_num;" (assignment_expression "uVar24._0_1_ = pEVar20->e_ident_magic_num" (field_expression "uVar24._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar24._1_1_ = pEVar20->e_ident_magic_str[0];" (assignment_expression "uVar24._1_1_ = pEVar20->e_ident_magic_str[0]" (field_expression "uVar24._1_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[0]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar24._2_1_ = pEVar20->e_ident_magic_str[1];" (assignment_expression "uVar24._2_1_ = pEVar20->e_ident_magic_str[1]" (field_expression "uVar24._2_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[1]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar24._3_1_ = pEVar20->e_ident_magic_str[2];" (assignment_expression "uVar24._3_1_ = pEVar20->e_ident_magic_str[2]" (field_expression "uVar24._3_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[2]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }" if (parenthesized_expression "(puVar10 == (undefined1 *)0x0)" ( (binary_expression "puVar10 == (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)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }" { (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "param_6->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 "param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 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)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 "param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 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)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 "param_6->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar24" (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)uVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }" else (compound_statement "{\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }" { (expression_statement "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" identifier = identifier) ;) (expression_statement "pbVar12 = &pEVar20->e_ident_class;" (assignment_expression "pbVar12 = &pEVar20->e_ident_class" identifier = (pointer_expression "&pEVar20->e_ident_class" & (field_expression "pEVar20->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);" do (compound_statement "{\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                }" { (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "pEVar27->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 "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 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)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 "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 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)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 "pEVar27->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar24" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar12 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar12 + 4)" ( (binary_expression "pbVar12 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar24 = *(undefined4 *)pbVar12;" (assignment_expression "uVar24 = *(undefined4 *)pbVar12" identifier = (pointer_expression "*(undefined4 *)pbVar12" * (cast_expression "(undefined4 *)pbVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 "pbVar12 = (byte *)pEVar18;" (assignment_expression "pbVar12 = (byte *)pEVar18" identifier = (cast_expression "(byte *)pEVar18" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (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 *)(puVar37 + -0x60) * 4 + -5) = uVar24;" (assignment_expression "*(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24" (pointer_expression "*(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5)" * (cast_expression "(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -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 *)(puVar37 + -0x60) * 4 + -5)" ( (binary_expression "param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5" (binary_expression "param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -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 *)(puVar37 + -0x60) * 4" (pointer_expression "*(int *)(puVar37 + -0x60)" * (cast_expression "(int *)(puVar37 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x60)" ( (binary_expression "puVar37 + -0x60" identifier + number_literal) )))) * number_literal)) + number_literal) )))) = identifier) ;) }))) })) }) (else_clause "else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }" else (compound_statement "{\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }" { (expression_statement "uVar25 = *(undefined4 *)(puVar37 + -0x4c);" (assignment_expression "uVar25 = *(undefined4 *)(puVar37 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" * (cast_expression "(undefined4 *)(puVar37 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar39 = *(code **)(puVar37 + -0x80);" (assignment_expression "pcVar39 = *(code **)(puVar37 + -0x80)" identifier = (pointer_expression "*(code **)(puVar37 + -0x80)" * (cast_expression "(code **)(puVar37 + -0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x80)" ( (binary_expression "puVar37 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -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 *)(puVar37 + -0x74)" * (cast_expression "(undefined4 *)(puVar37 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x74)" ( (binary_expression "puVar37 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);" (assignment_expression "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c)" (pointer_expression "*(undefined4 *)(puVar3 + 0x10)" * (cast_expression "(undefined4 *)(puVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x10)" ( (binary_expression "puVar3 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar37 + -0x7c)" * (cast_expression "(undefined4 *)(puVar37 + -0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x7c)" ( (binary_expression "puVar37 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar39)(pEVar20,param_3,uVar25,pEVar32);" (call_expression "(*pcVar39)(pEVar20,param_3,uVar25,pEVar32)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(pEVar20,param_3,uVar25,pEVar32)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar18 = *(Elf32_Ehdr **)pEVar20;" (assignment_expression "pEVar18 = *(Elf32_Ehdr **)pEVar20" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar20" * (cast_expression "(Elf32_Ehdr **)pEVar20" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar29 = pEVar28;" (assignment_expression "pEVar29 = pEVar28" identifier = identifier) ;) (expression_statement "pEVar5 = param_6;" (assignment_expression "pEVar5 = param_6" identifier = identifier) ;) (expression_statement "pEVar27 = pEVar20;" (assignment_expression "pEVar27 = pEVar20" identifier = identifier) ;) (if_statement "if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\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 **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }" { (expression_statement "*(Elf32_Ehdr **)param_6 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)param_6 = pEVar18" (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 = pEVar32;" (assignment_expression "param_3 = pEVar32" identifier = identifier) ;) }) (else_clause "else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }" else (compound_statement "{\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }" { (do_statement "do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);" do (compound_statement "{\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              }" { (expression_statement "*(Elf32_Ehdr **)pEVar5 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)pEVar5 = pEVar18" (pointer_expression "*(Elf32_Ehdr **)pEVar5" * (cast_expression "(Elf32_Ehdr **)pEVar5" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar29[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar29[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar29[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar29[-1].e_shstrndx" & (field_expression "pEVar29[-1].e_shstrndx" (subscript_expression "pEVar29[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;" (assignment_expression "pEVar18 = *(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 "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)))) ;) (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 "(pEVar29 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar29 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar37 + -0x84) = pEVar18;" (assignment_expression "**(undefined4 **)(puVar37 + -0x84) = pEVar18" (pointer_expression "**(undefined4 **)(puVar37 + -0x84)" * (pointer_expression "*(undefined4 **)(puVar37 + -0x84)" * (cast_expression "(undefined4 **)(puVar37 + -0x84)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x84)" ( (binary_expression "puVar37 + -0x84" identifier + number_literal) ))))) = identifier) ;) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" identifier = identifier) ;) }))) }))) })) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -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 "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) (expression_statement "param_4 = *(Elf32_Ehdr **)(puVar37 + 8);" (assignment_expression "param_4 = *(Elf32_Ehdr **)(puVar37 + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar37 + 8)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 8)" ( (binary_expression "puVar37 + 8" identifier + number_literal) ))))) ;) (expression_statement "pEVar30 = pEVar28;" (assignment_expression "pEVar30 = pEVar28" identifier = identifier) ;) }))) (labeled_statement "LAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;" statement_identifier : (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)) ;)) (expression_statement "pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x6c)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x6c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x6c)" ( (binary_expression "puVar37 + -0x6c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -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_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }" { (labeled_statement "LAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 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        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 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        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }" { (expression_statement "pcVar9 = param_6->e_ident_magic_str + (int)param_3 * 4 + -1;" (assignment_expression "pcVar9 = param_6->e_ident_magic_str + (int)param_3 * 4 + -1" identifier = (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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);" do (compound_statement "{\n          param_3 = (Elf32_Ehdr *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 == (Elf32_Ehdr *)0x0) {\n            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }" { (expression_statement "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)param_4 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_4 & 1)" ( (binary_expression "(uint)param_4 & 1" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar14 = *(int **)(puVar37 + -0x54);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" identifier = (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;" if (parenthesized_expression "((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))" ( (binary_expression "(pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))" (parenthesized_expression "(pEVar29 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar29 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))" ( (comma_expression "piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" identifier = (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar37 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar37 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar37 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar37 + -0x5c) + 4" (pointer_expression "*(int *)(puVar37 + -0x5c)" * (cast_expression "(int *)(puVar37 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x5c)" ( (binary_expression "puVar37 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (goto_statement "goto LAB_00031934;" goto statement_identifier ;)) (goto_statement "goto LAB_00031a08;" goto statement_identifier ;) })) (expression_statement "piVar14 = (int *)(pcVar9 + -8);" (assignment_expression "piVar14 = (int *)(pcVar9 + -8)" identifier = (cast_expression "(int *)(pcVar9 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + -8)" ( (binary_expression "pcVar9 + -8" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = pcVar9 + -4;" (assignment_expression "pcVar9 = pcVar9 + -4" identifier = (binary_expression "pcVar9 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar14 == 0)" ( (binary_expression "*piVar14 == 0" (pointer_expression "*piVar14" * identifier) == number_literal) )) ;) }))) (expression_statement "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)param_4 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_4 & 1)" ( (binary_expression "(uint)param_4 & 1" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar14 = *(int **)(puVar37 + -0x54);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" identifier = (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }" if (parenthesized_expression "((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))" ( (binary_expression "(pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))" (parenthesized_expression "(pEVar29 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar29 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))" ( (comma_expression "piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" identifier = (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar37 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar37 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar37 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar37 + -0x5c) + 4" (pointer_expression "*(int *)(puVar37 + -0x5c)" * (cast_expression "(int *)(puVar37 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x5c)" ( (binary_expression "puVar37 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (compound_statement "{\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }" { (labeled_statement "LAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);" statement_identifier : (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7a80);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7a80)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7a80)" * (cast_expression "(code **)(puVar35 + -0x7a80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7a80)" ( (binary_expression "puVar35 + -0x7a80" identifier + number_literal) ))))) ;)) (if_statement "if (*piVar14 < (int)param_3) goto LAB_00031fa0;" if (parenthesized_expression "(*piVar14 < (int)param_3)" ( (binary_expression "*piVar14 < (int)param_3" (pointer_expression "*piVar14" * identifier) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00031fa0;" goto statement_identifier ;)) (labeled_statement "LAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);" statement_identifier : (expression_statement "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)param_4 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_4 & 1)" ( (binary_expression "(uint)param_4 & 1" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;)) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar37 + -0x54) + 4" (pointer_expression "*(int *)(puVar37 + -0x54)" * (cast_expression "(int *)(puVar37 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (if_statement "if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;" 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_00031994;" goto statement_identifier ;)) }) (else_clause "else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }" else (compound_statement "{\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }" { (if_statement "if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;" 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_00031a04;" goto statement_identifier ;)) (expression_statement "param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x68) + 8)" ( (binary_expression "*(int *)(puVar37 + -0x68) + 8" (pointer_expression "*(int *)(puVar37 + -0x68)" * (cast_expression "(int *)(puVar37 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x68)" ( (binary_expression "puVar37 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar18 = param_1;" (assignment_expression "pEVar18 = param_1" identifier = identifier) ;) (expression_statement "iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);" (assignment_expression "iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3)" identifier = (call_expression "(**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3)" (parenthesized_expression "(**(code **)(puVar35 + -0x7b2c))" ( (pointer_expression "**(code **)(puVar35 + -0x7b2c)" * (pointer_expression "*(code **)(puVar35 + -0x7b2c)" * (cast_expression "(code **)(puVar35 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7b2c)" ( (binary_expression "puVar35 + -0x7b2c" identifier + number_literal) ))))) )) (argument_list "(param_6,param_1,param_6,param_3)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar28 = param_3;" (assignment_expression "pEVar28 = param_3" identifier = identifier) ;) (if_statement "if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }" { (labeled_statement "LAB_00031fd0:\n          param_3 = pEVar28;" statement_identifier : (expression_statement "param_3 = pEVar28;" (assignment_expression "param_3 = pEVar28" identifier = identifier) ;)) (if_statement "if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;" if (parenthesized_expression "((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28))" ( (binary_expression "(param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)" (parenthesized_expression "(param_6 == param_1)" ( (binary_expression "param_6 == param_1" identifier == identifier) )) || (parenthesized_expression "((int)pEVar32 <= (int)pEVar28)" ( (binary_expression "(int)pEVar32 <= (int)pEVar28" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_00031c50;" goto statement_identifier ;)) (expression_statement "pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1)" ( (binary_expression "param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1" (binary_expression "param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70)" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar37 + -0x70)" * (cast_expression "(int *)(puVar37 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);" (assignment_expression "pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1)" identifier = (cast_expression "(byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1)" ( (binary_expression "param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1" (binary_expression "param_1->e_ident_magic_str + (int)pEVar28 * 4" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar28 * 4" (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);" (assignment_expression "pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1)" identifier = (cast_expression "(byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1)" ( (binary_expression "param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)pEVar28 * 4" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar28 * 4" (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (do_statement "do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);" do (compound_statement "{\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          }" { (expression_statement "uVar25 = *(undefined4 *)pbVar7;" (assignment_expression "uVar25 = *(undefined4 *)pbVar7" identifier = (pointer_expression "*(undefined4 *)pbVar7" * (cast_expression "(undefined4 *)pbVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar7 = pbVar7 + 4;" (assignment_expression "pbVar7 = pbVar7 + 4" identifier = (binary_expression "pbVar7 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar12 = uVar25;" (assignment_expression "*(undefined4 *)pbVar12 = uVar25" (pointer_expression "*(undefined4 *)pbVar12" * (cast_expression "(undefined4 *)pbVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar12 = pbVar12 + 4;" (assignment_expression "pbVar12 = pbVar12 + 4" identifier = (binary_expression "pbVar12 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pEVar18 != (Elf32_Ehdr *)pbVar7)" ( (binary_expression "pEVar18 != (Elf32_Ehdr *)pbVar7" identifier != (cast_expression "(Elf32_Ehdr *)pbVar7" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "iVar11 = *(int *)(puVar37 + -0x50);" (assignment_expression "iVar11 = *(int *)(puVar37 + -0x50)" identifier = (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }" else (compound_statement "{\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;" (assignment_expression "pEVar28 = (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))) ;) (if_statement "if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }" if (parenthesized_expression "((int)param_3 < (int)pEVar32)" ( (binary_expression "(int)param_3 < (int)pEVar32" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }" { (expression_statement "pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);" (assignment_expression "pEVar18 = (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 "pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar12 = (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 "iVar11 = *(int *)pbVar12;" (assignment_expression "iVar11 = *(int *)pbVar12" identifier = (pointer_expression "*(int *)pbVar12" * (cast_expression "(int *)pbVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;" (assignment_expression "*(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1" (pointer_expression "*(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" * (cast_expression "(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" ( (type_descriptor "int *" primitive_type (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) )))) = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (if_statement "if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }" { (expression_statement "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar18->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar18->e_ident_class" & (field_expression "pEVar18->e_ident_class" identifier -> field_identifier)))) ;) (if_statement "if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;" if (parenthesized_expression "((int)pEVar32 <= (int)pEVar28)" ( (binary_expression "(int)pEVar32 <= (int)pEVar28" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00031c50;" goto statement_identifier ;)) (expression_statement "pcVar9 = (char *)((int)pEVar18 + -1);" (assignment_expression "pcVar9 = (char *)((int)pEVar18 + -1)" identifier = (cast_expression "(char *)((int)pEVar18 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar18 + -1)" ( (binary_expression "(int)pEVar18 + -1" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str)" identifier = (cast_expression "(Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str)" ( (binary_expression "(char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str" (cast_expression "(char *)((int)pEVar18 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar18 + -1)" ( (binary_expression "(int)pEVar18 + -1" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + (cast_expression "(int)param_6->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier))) )))) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1)" identifier = (cast_expression "(Elf32_Ehdr *)(param_3->e_ident_magic_str + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3->e_ident_magic_str + 1)" ( (binary_expression "param_3->e_ident_magic_str + 1" (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);" (assignment_expression "iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str)" identifier = (pointer_expression "*(int *)(pcVar9 + (int)param_1->e_ident_magic_str)" * (cast_expression "(int *)(pcVar9 + (int)param_1->e_ident_magic_str)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + (int)param_1->e_ident_magic_str)" ( (binary_expression "pcVar9 + (int)param_1->e_ident_magic_str" identifier + (cast_expression "(int)param_1->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier))) ))))) ;) (expression_statement "*(int *)pEVar18 = iVar11 + -1;" (assignment_expression "*(int *)pEVar18 = iVar11 + -1" (pointer_expression "*(int *)pEVar18" * (cast_expression "(int *)pEVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (expression_statement "pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar7 = (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) )))) ;) (while_statement "while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }" while (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }" { (expression_statement "param_3 = pEVar28;" (assignment_expression "param_3 = pEVar28" identifier = identifier) ;) (if_statement "if (pEVar32 == pEVar28) goto LAB_00031c50;" if (parenthesized_expression "(pEVar32 == pEVar28)" ( (binary_expression "pEVar32 == pEVar28" identifier == identifier) )) (goto_statement "goto LAB_00031c50;" goto statement_identifier ;)) (expression_statement "iVar11 = *(int *)(pbVar12 + 8);" (assignment_expression "iVar11 = *(int *)(pbVar12 + 8)" identifier = (pointer_expression "*(int *)(pbVar12 + 8)" * (cast_expression "(int *)(pbVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar12 + 8)" ( (binary_expression "pbVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str" identifier = (cast_expression "(Elf32_Ehdr *)pEVar28->e_ident_magic_str" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier))) ;) (expression_statement "pbVar12 = pbVar12 + 4;" (assignment_expression "pbVar12 = pbVar12 + 4" identifier = (binary_expression "pbVar12 + 4" identifier + number_literal)) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)(iVar11 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(iVar11 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -1)" ( (binary_expression "iVar11 + -1" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18" (pointer_expression "*(Elf32_Ehdr **)(pbVar7 + 8)" * (cast_expression "(Elf32_Ehdr **)(pbVar7 + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar7 + 8)" ( (binary_expression "pbVar7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar7 = pbVar7 + 4;" (assignment_expression "pbVar7 = pbVar7 + 4" identifier = (binary_expression "pbVar7 + 4" identifier + number_literal)) ;) })) })) (goto_statement "goto LAB_00031fd0;" goto statement_identifier ;) })) (labeled_statement "LAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);" statement_identifier : (expression_statement "iVar11 = *(int *)(puVar37 + -0x50);" (assignment_expression "iVar11 = *(int *)(puVar37 + -0x50)" identifier = (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) ))))) ;)) }))) (expression_statement "pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + iVar11 + -1)" ( (binary_expression "param_6->e_ident_magic_str + iVar11 + -1" (binary_expression "param_6->e_ident_magic_str + iVar11" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) )))) ;) (expression_statement "iVar11._0_1_ = pEVar28->e_ident_magic_num;" (assignment_expression "iVar11._0_1_ = pEVar28->e_ident_magic_num" (field_expression "iVar11._0_1_" identifier . field_identifier) = (field_expression "pEVar28->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "iVar11._1_1_ = pEVar28->e_ident_magic_str[0];" (assignment_expression "iVar11._1_1_ = pEVar28->e_ident_magic_str[0]" (field_expression "iVar11._1_1_" identifier . field_identifier) = (subscript_expression "pEVar28->e_ident_magic_str[0]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar11._2_1_ = pEVar28->e_ident_magic_str[1];" (assignment_expression "iVar11._2_1_ = pEVar28->e_ident_magic_str[1]" (field_expression "iVar11._2_1_" identifier . field_identifier) = (subscript_expression "pEVar28->e_ident_magic_str[1]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar11._3_1_ = pEVar28->e_ident_magic_str[2];" (assignment_expression "iVar11._3_1_ = pEVar28->e_ident_magic_str[2]" (field_expression "iVar11._3_1_" identifier . field_identifier) = (subscript_expression "pEVar28->e_ident_magic_str[2]" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }" { (expression_statement "iVar11 = *(int *)(puVar37 + -0x78);" (assignment_expression "iVar11 = *(int *)(puVar37 + -0x78)" identifier = (pointer_expression "*(int *)(puVar37 + -0x78)" * (cast_expression "(int *)(puVar37 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x78)" ( (binary_expression "puVar37 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;" (assignment_expression "pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1" identifier = (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70)" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar37 + -0x70)" * (cast_expression "(int *)(puVar37 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x70)" ( (binary_expression "puVar37 + -0x70" identifier + number_literal) ))))) + number_literal)) ;) (do_statement "do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);" do (compound_statement "{\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          }" { (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (if_statement "if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }" { (expression_statement "piVar14 = *(int **)(puVar37 + -0x54);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" identifier = (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00031a08;" goto statement_identifier ;) })) (expression_statement "piVar14 = (int *)(pcVar9 + -8);" (assignment_expression "piVar14 = (int *)(pcVar9 + -8)" identifier = (cast_expression "(int *)(pcVar9 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + -8)" ( (binary_expression "pcVar9 + -8" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = pcVar9 + -4;" (assignment_expression "pcVar9 = pcVar9 + -4" identifier = (binary_expression "pcVar9 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar14 == 0)" ( (binary_expression "*piVar14 == 0" (pointer_expression "*piVar14" * identifier) == number_literal) )) ;) (expression_statement "*(int *)(puVar37 + -0x78) = iVar11;" (assignment_expression "*(int *)(puVar37 + -0x78) = iVar11" (pointer_expression "*(int *)(puVar37 + -0x78)" * (cast_expression "(int *)(puVar37 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x78)" ( (binary_expression "puVar37 + -0x78" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);" (assignment_expression "param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x78)" ( (binary_expression "puVar37 + -0x78" identifier + number_literal) ))))) ;) (if_statement "if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }" if (parenthesized_expression "(**(int **)(puVar37 + -0x54) < (int)param_3)" ( (binary_expression "**(int **)(puVar37 + -0x54) < (int)param_3" (pointer_expression "**(int **)(puVar37 + -0x54)" * (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }" { (expression_statement "param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);" (assignment_expression "param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x78)" ( (binary_expression "puVar37 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7a80);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7a80)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7a80)" * (cast_expression "(code **)(puVar35 + -0x7a80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7a80)" ( (binary_expression "puVar35 + -0x7a80" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031fa0:\n          pEVar18 = param_3;" statement_identifier : (expression_statement "pEVar18 = param_3;" (assignment_expression "pEVar18 = param_3" identifier = identifier) ;)) (expression_statement "(*pcVar39)(*(undefined4 *)(puVar37 + -0x54));" (call_expression "(*pcVar39)(*(undefined4 *)(puVar37 + -0x54))" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(*(undefined4 *)(puVar37 + -0x54))" ( (pointer_expression "*(undefined4 *)(puVar37 + -0x54)" * (cast_expression "(undefined4 *)(puVar37 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) )))) ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00031944;" goto statement_identifier ;) })) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar37 + -0x54) + 4" (pointer_expression "*(int *)(puVar37 + -0x54)" * (cast_expression "(int *)(puVar37 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }))) (expression_statement "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)param_4 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_4 & 1)" ( (binary_expression "(uint)param_4 & 1" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (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 "pEVar18 = *(Elf32_Ehdr **)param_6;" (assignment_expression "pEVar18 = *(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 "puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);" (assignment_expression "puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(puVar37 + -0x54) + 8)" * (cast_expression "(undefined4 **)(*(int *)(puVar37 + -0x54) + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar37 + -0x54) + 8)" ( (binary_expression "*(int *)(puVar37 + -0x54) + 8" (pointer_expression "*(int *)(puVar37 + -0x54)" * (cast_expression "(int *)(puVar37 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar4 = puVar21;" (assignment_expression "puVar4 = puVar21" identifier = identifier) ;) (expression_statement "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" identifier = identifier) ;) (if_statement "if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }" if (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }" { (do_statement "do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);" do (compound_statement "{\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        }" { (expression_statement "*puVar4 = pEVar18;" (assignment_expression "*puVar4 = pEVar18" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;" (assignment_expression "pEVar18 = *(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 "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1)" identifier = (binary_expression "puVar21 + (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 "*puVar21 = pEVar18;" (assignment_expression "*puVar21 = pEVar18" (pointer_expression "*puVar21" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }" else (compound_statement "{\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }" { (expression_statement "iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);" (assignment_expression "iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27)" identifier = (call_expression "(**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27)" (parenthesized_expression "(**(code **)(puVar35 + -0x7ad4))" ( (pointer_expression "**(code **)(puVar35 + -0x7ad4)" * (pointer_expression "*(code **)(puVar35 + -0x7ad4)" * (cast_expression "(code **)(puVar35 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7ad4)" ( (binary_expression "puVar35 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar20,param_6,param_3,pEVar27)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar16 = *(int *)(puVar37 + -0x90);" (assignment_expression "iVar16 = *(int *)(puVar37 + -0x90)" identifier = (pointer_expression "*(int *)(puVar37 + -0x90)" * (cast_expression "(int *)(puVar37 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = (int)param_3 * 4;" (assignment_expression "iVar11 = (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 + ((iVar13 != 0) - 1));" (assignment_expression "param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1))" identifier = (cast_expression "(Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3->e_ident_magic_str + ((iVar13 != 0) - 1))" ( (binary_expression "param_3->e_ident_magic_str + ((iVar13 != 0) - 1)" (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier) + (parenthesized_expression "((iVar13 != 0) - 1)" ( (binary_expression "(iVar13 != 0) - 1" (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) - number_literal) ))) )))) ;) (expression_statement "*(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;" (assignment_expression "*(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13" (pointer_expression "*(int *)(pEVar20->e_ident_magic_str + iVar11 + -1)" * (cast_expression "(int *)(pEVar20->e_ident_magic_str + iVar11 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar20->e_ident_magic_str + iVar11 + -1)" ( (binary_expression "pEVar20->e_ident_magic_str + iVar11 + -1" (binary_expression "pEVar20->e_ident_magic_str + iVar11" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "param_1 = pEVar27;" (assignment_expression "param_1 = pEVar27" identifier = identifier) ;) (if_statement "if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }" if (parenthesized_expression "((int)pEVar32 <= (int)param_3)" ( (binary_expression "(int)pEVar32 <= (int)param_3" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }" { (expression_statement "uVar25 = *(undefined4 *)(puVar37 + -0x4c);" (assignment_expression "uVar25 = *(undefined4 *)(puVar37 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" * (cast_expression "(undefined4 *)(puVar37 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x4c)" ( (binary_expression "puVar37 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -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 *)(puVar37 + -0x74)" * (cast_expression "(undefined4 *)(puVar37 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x74)" ( (binary_expression "puVar37 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar37 + -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 "puVar37 + -0x44" identifier + number_literal)) ;) (expression_statement "FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);" (call_expression "FUN_00030f30(pEVar20,param_3,uVar25,pEVar32)" identifier (argument_list "(pEVar20,param_3,uVar25,pEVar32)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (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 "iVar16 = *(int *)(puVar37 + -0x90);" (assignment_expression "iVar16 = *(int *)(puVar37 + -0x90)" identifier = (pointer_expression "*(int *)(puVar37 + -0x90)" * (cast_expression "(int *)(puVar37 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar15._0_1_ = pEVar20->e_ident_magic_num;" (assignment_expression "uVar15._0_1_ = pEVar20->e_ident_magic_num" (field_expression "uVar15._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar15._1_1_ = pEVar20->e_ident_magic_str[0];" (assignment_expression "uVar15._1_1_ = pEVar20->e_ident_magic_str[0]" (field_expression "uVar15._1_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[0]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar15._2_1_ = pEVar20->e_ident_magic_str[1];" (assignment_expression "uVar15._2_1_ = pEVar20->e_ident_magic_str[1]" (field_expression "uVar15._2_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[1]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar15._3_1_ = pEVar20->e_ident_magic_str[2];" (assignment_expression "uVar15._3_1_ = pEVar20->e_ident_magic_str[2]" (field_expression "uVar15._3_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[2]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" identifier = identifier) ;) (expression_statement "pEVar18 = pEVar20;" (assignment_expression "pEVar18 = pEVar20" identifier = identifier) ;) (if_statement "if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }" if (parenthesized_expression "(puVar10 == (undefined1 *)0x0)" ( (binary_expression "puVar10 == (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)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }" { (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18)" (field_expression "param_6->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar15 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar15 >> 0x18)" ( (binary_expression "(uint)uVar15 >> 0x18" (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 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)uVar15 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar15 >> 0x10)" ( (binary_expression "(uint)uVar15 >> 0x10" (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 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)uVar15 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar15 >> 8)" ( (binary_expression "(uint)uVar15 >> 8" (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_6->e_ident_magic_str[2] = (char)uVar15;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar15" (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)uVar15" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" identifier = identifier) ;) }) (else_clause "else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }" else (compound_statement "{\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }" { (do_statement "do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);" do (compound_statement "{\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          }" { (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar15 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar15 >> 0x18)" ( (binary_expression "(uint)uVar15 >> 0x18" (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 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)uVar15 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar15 >> 0x10)" ( (binary_expression "(uint)uVar15 >> 0x10" (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 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)uVar15 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar15 >> 8)" ( (binary_expression "(uint)uVar15 >> 8" (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar15;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar15" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar15" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar15._0_1_ = pEVar18->e_ident_class;" (assignment_expression "uVar15._0_1_ = pEVar18->e_ident_class" (field_expression "uVar15._0_1_" identifier . field_identifier) = (field_expression "pEVar18->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar15._1_1_ = pEVar18->e_ident_data;" (assignment_expression "uVar15._1_1_ = pEVar18->e_ident_data" (field_expression "uVar15._1_1_" identifier . field_identifier) = (field_expression "pEVar18->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar15._2_1_ = pEVar18->e_ident_version;" (assignment_expression "uVar15._2_1_ = pEVar18->e_ident_version" (field_expression "uVar15._2_1_" identifier . field_identifier) = (field_expression "pEVar18->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar15._3_1_ = pEVar18->e_ident_osabi;" (assignment_expression "uVar15._3_1_ = pEVar18->e_ident_osabi" (field_expression "uVar15._3_1_" identifier . field_identifier) = (field_expression "pEVar18->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 "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar18->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar18->e_ident_class" & (field_expression "pEVar18->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (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 *)(puVar37 + -0x50) + -1) = uVar15;" (assignment_expression "*(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15" (pointer_expression "*(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" * (cast_expression "(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" ( (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50)" (field_expression "param_6->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar37 + -0x50)" * (cast_expression "(int *)(puVar37 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x50)" ( (binary_expression "puVar37 + -0x50" identifier + number_literal) ))))) + number_literal) )))) = identifier) ;) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" identifier = identifier) ;) }))) (labeled_statement "LAB_00031de0:\n        pEVar18 = param_6;" statement_identifier : (expression_statement "pEVar18 = param_6;" (assignment_expression "pEVar18 = param_6" identifier = identifier) ;)) (expression_statement "(**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));" (call_expression "(**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c))" (parenthesized_expression "(**(code **)(iVar16 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar16 + -0x7ae0)" * (pointer_expression "*(code **)(iVar16 + -0x7ae0)" * (cast_expression "(code **)(iVar16 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + -0x7ae0)" ( (binary_expression "iVar16 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(puVar37 + -0x6c)" * (cast_expression "(undefined4 *)(puVar37 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x6c)" ( (binary_expression "puVar37 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000318dc;" goto statement_identifier ;) })) (expression_statement "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (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        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\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._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }" { (expression_statement "uVar19._0_1_ = pEVar20->e_ident_magic_num;" (assignment_expression "uVar19._0_1_ = pEVar20->e_ident_magic_num" (field_expression "uVar19._0_1_" identifier . field_identifier) = (field_expression "pEVar20->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar19._1_1_ = pEVar20->e_ident_magic_str[0];" (assignment_expression "uVar19._1_1_ = pEVar20->e_ident_magic_str[0]" (field_expression "uVar19._1_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[0]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar19._2_1_ = pEVar20->e_ident_magic_str[1];" (assignment_expression "uVar19._2_1_ = pEVar20->e_ident_magic_str[1]" (field_expression "uVar19._2_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[1]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar19._3_1_ = pEVar20->e_ident_magic_str[2];" (assignment_expression "uVar19._3_1_ = pEVar20->e_ident_magic_str[2]" (field_expression "uVar19._3_1_" identifier . field_identifier) = (subscript_expression "pEVar20->e_ident_magic_str[2]" (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" identifier = identifier) ;) (expression_statement "pEVar18 = pEVar20;" (assignment_expression "pEVar18 = pEVar20" identifier = identifier) ;) (if_statement "if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }" if (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }" { (do_statement "do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);" do (compound_statement "{\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          }" { (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar19 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar19 >> 0x18)" ( (binary_expression "(uint)uVar19 >> 0x18" (cast_expression "(uint)uVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 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)uVar19 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar19 >> 0x10)" ( (binary_expression "(uint)uVar19 >> 0x10" (cast_expression "(uint)uVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 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)uVar19 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar19 >> 8)" ( (binary_expression "(uint)uVar19 >> 8" (cast_expression "(uint)uVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar19;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar19" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar19" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar19._0_1_ = pEVar18->e_ident_class;" (assignment_expression "uVar19._0_1_ = pEVar18->e_ident_class" (field_expression "uVar19._0_1_" identifier . field_identifier) = (field_expression "pEVar18->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar19._1_1_ = pEVar18->e_ident_data;" (assignment_expression "uVar19._1_1_ = pEVar18->e_ident_data" (field_expression "uVar19._1_1_" identifier . field_identifier) = (field_expression "pEVar18->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar19._2_1_ = pEVar18->e_ident_version;" (assignment_expression "uVar19._2_1_ = pEVar18->e_ident_version" (field_expression "uVar19._2_1_" identifier . field_identifier) = (field_expression "pEVar18->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar19._3_1_ = pEVar18->e_ident_osabi;" (assignment_expression "uVar19._3_1_ = pEVar18->e_ident_osabi" (field_expression "uVar19._3_1_" identifier . field_identifier) = (field_expression "pEVar18->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 "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar18->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar18->e_ident_class" & (field_expression "pEVar18->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" ( (binary_expression "puVar10 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar27 = (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 "pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar19 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar19 >> 0x18)" ( (binary_expression "(uint)uVar19 >> 0x18" (cast_expression "(uint)uVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 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)uVar19 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar19 >> 0x10)" ( (binary_expression "(uint)uVar19 >> 0x10" (cast_expression "(uint)uVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 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)uVar19 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar19 >> 8)" ( (binary_expression "(uint)uVar19 >> 8" (cast_expression "(uint)uVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar19;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar19" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar19" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_00031de0;" goto statement_identifier ;) })) (expression_statement "pEVar18 = param_6;" (assignment_expression "pEVar18 = param_6" identifier = identifier) ;) (expression_statement "(**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);" (call_expression "(**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27)" (parenthesized_expression "(**(code **)(iVar16 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar16 + -0x7ae0)" * (pointer_expression "*(code **)(iVar16 + -0x7ae0)" * (cast_expression "(code **)(iVar16 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + -0x7ae0)" ( (binary_expression "iVar16 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(param_6,param_6,0,pEVar27)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar29 = param_4;" (assignment_expression "pEVar29 = param_4" identifier = identifier) ;) (labeled_statement "LAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);" statement_identifier : (expression_statement "piVar14 = *(int **)(puVar37 + -0x54);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" identifier = (pointer_expression "*(int **)(puVar37 + -0x54)" * (cast_expression "(int **)(puVar37 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }" statement_identifier : (if_statement "if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }" if (parenthesized_expression "(*piVar14 < 0)" ( (binary_expression "*piVar14 < 0" (pointer_expression "*piVar14" * identifier) < number_literal) )) (compound_statement "{\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 **)(puVar37 + -0x54);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x54)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x54)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puVar35 + -0x7a80))(param_1);" (call_expression "(**(code **)(puVar35 + -0x7a80))(param_1)" (parenthesized_expression "(**(code **)(puVar35 + -0x7a80))" ( (pointer_expression "**(code **)(puVar35 + -0x7a80)" * (pointer_expression "*(code **)(puVar35 + -0x7a80)" * (cast_expression "(code **)(puVar35 + -0x7a80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7a80)" ( (binary_expression "puVar35 + -0x7a80" identifier + number_literal) ))))) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" 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 *)(puVar37 + -0x54) + 4) = 0;\n      }" else (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      }" { (expression_statement "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar37 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar37 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar37 + -0x54) + 4" (pointer_expression "*(int *)(puVar37 + -0x54)" * (cast_expression "(int *)(puVar37 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x54)" ( (binary_expression "puVar37 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) })))) }))) (labeled_statement "LAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);" statement_identifier : (expression_statement "piVar14 = *(int **)(puVar37 + -0x40);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x40)" identifier = (pointer_expression "*(int **)(puVar37 + -0x40)" * (cast_expression "(int **)(puVar37 + -0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x40)" ( (binary_expression "puVar37 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "piVar6 = *(int **)(puVar37 + -0x58);" (assignment_expression "piVar6 = *(int **)(puVar37 + -0x58)" identifier = (pointer_expression "*(int **)(puVar37 + -0x58)" * (cast_expression "(int **)(puVar37 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x58)" ( (binary_expression "puVar37 + -0x58" identifier + number_literal) ))))) ;) (if_statement "if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }" if (parenthesized_expression "(piVar14 != (int *)0x0)" ( (binary_expression "piVar14 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }" { (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7a28);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7a28)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7a28)" * (cast_expression "(code **)(puVar35 + -0x7a28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7a28)" ( (binary_expression "puVar35 + -0x7a28" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00031708;" goto statement_identifier ;) })) }) (else_clause "else {\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }" else (compound_statement "{\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }" { (expression_statement "pcVar39 = *(code **)(puVar34 + 0x6c110);" (assignment_expression "pcVar39 = *(code **)(puVar34 + 0x6c110)" identifier = (pointer_expression "*(code **)(puVar34 + 0x6c110)" * (cast_expression "(code **)(puVar34 + 0x6c110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar34 + 0x6c110)" ( (binary_expression "puVar34 + 0x6c110" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x3c)" * (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x3c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x3c)" ( (binary_expression "puVar37 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar37 + -0x34) = 1;" (assignment_expression "*(undefined4 *)(puVar37 + -0x34) = 1" (pointer_expression "*(undefined4 *)(puVar37 + -0x34)" * (cast_expression "(undefined4 *)(puVar37 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x34)" ( (binary_expression "puVar37 + -0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;" (assignment_expression "*(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c" (pointer_expression "*(undefined1 **)(puVar37 + -0x30)" * (cast_expression "(undefined1 **)(puVar37 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x30)" ( (binary_expression "puVar37 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar37 + -0x3c" identifier + number_literal)) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" identifier = (pointer_expression "*(undefined **)(puVar37 + -0x90)" * (cast_expression "(undefined **)(puVar37 + -0x90)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x90)" ( (binary_expression "puVar37 + -0x90" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);" statement_identifier : (expression_statement "piVar6 = *(int **)(puVar37 + -0x58);" (assignment_expression "piVar6 = *(int **)(puVar37 + -0x58)" identifier = (pointer_expression "*(int **)(puVar37 + -0x58)" * (cast_expression "(int **)(puVar37 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + -0x58)" ( (binary_expression "puVar37 + -0x58" identifier + number_literal) ))))) ;)) }))) (if_statement "if (*(int *)(puVar37 + -0x2c) == *piVar6) {\n    return *piVar6;\n  }" if (parenthesized_expression "(*(int *)(puVar37 + -0x2c) == *piVar6)" ( (binary_expression "*(int *)(puVar37 + -0x2c) == *piVar6" (pointer_expression "*(int *)(puVar37 + -0x2c)" * (cast_expression "(int *)(puVar37 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + -0x2c)" ( (binary_expression "puVar37 + -0x2c" identifier + number_literal) )))) == (pointer_expression "*piVar6" * identifier)) )) (compound_statement "{\n    return *piVar6;\n  }" { (return_statement "return *piVar6;" return (pointer_expression "*piVar6" * identifier) ;) })) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7b70);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7b70)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7b70)" * (cast_expression "(code **)(puVar35 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7b70)" ( (binary_expression "puVar35 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = 0x3206c;" (assignment_expression "uVar25 = 0x3206c" identifier = number_literal) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar36 = pcVar39 + 0x72fd0;" (assignment_expression "pcVar36 = pcVar39 + 0x72fd0" identifier = (binary_expression "pcVar39 + 0x72fd0" identifier + number_literal)) ;) (expression_statement "puVar10 = puVar3 + -0x38;" (assignment_expression "puVar10 = puVar3 + -0x38" identifier = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29" (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 "piVar6 = *(int **)(pcVar39 + 0x6b4d0);" (assignment_expression "piVar6 = *(int **)(pcVar39 + 0x6b4d0)" identifier = (pointer_expression "*(int **)(pcVar39 + 0x6b4d0)" * (cast_expression "(int **)(pcVar39 + 0x6b4d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x6b4d0)" ( (binary_expression "pcVar39 + 0x6b4d0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8;" (assignment_expression "*(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8" (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 "puVar37 + -0xa8" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28" (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) = uVar25;" (assignment_expression "*(undefined4 *)(puVar3 + -4) = uVar25" (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) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar30" (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) = pcVar36;" (assignment_expression "*(code **)(puVar3 + -0x28) = pcVar36" (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 < pEVar18) {\n    if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);\n    pcVar36 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);\n    uVar17 = 8;\n    do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);\n    if (uVar42 == 0) {\n      trap(7);\n    }\n    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    iVar13 = 0;\n    uVar43 = 1;\n    iVar11 = 0;\n    uVar17 = 0;\n    uVar42 = 6;\n    do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);\n    if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    piVar31 = *(int **)(puVar3 + -0x20);\n    if (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }" if (parenthesized_expression "((Elf32_Ehdr *)&DAT_00000004 < pEVar18)" ( (binary_expression "(Elf32_Ehdr *)&DAT_00000004 < pEVar18" (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 (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);\n    pcVar36 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);\n    uVar17 = 8;\n    do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);\n    if (uVar42 == 0) {\n      trap(7);\n    }\n    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    iVar13 = 0;\n    uVar43 = 1;\n    iVar11 = 0;\n    uVar17 = 0;\n    uVar42 = 6;\n    do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);\n    if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    piVar31 = *(int **)(puVar3 + -0x20);\n    if (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n  }" { (if_statement "if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }" if (parenthesized_expression "(*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1))" ( (binary_expression "*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)" (pointer_expression "*piVar14" * identifier) < (cast_expression "(int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)" ( (binary_expression "((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1" (binary_expression "((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6)" (parenthesized_expression "((uint)pEVar18 >> 5)" ( (binary_expression "(uint)pEVar18 >> 5" (cast_expression "(uint)pEVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (parenthesized_expression "((uint)pEVar18 >> 6)" ( (binary_expression "(uint)pEVar18 >> 6" (cast_expression "(uint)pEVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) + number_literal) )))) )) (compound_statement "{\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))()" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))()" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x6b550))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x6b550))" ( (pointer_expression "**(code **)(pcVar39 + 0x6b550)" * (pointer_expression "*(code **)(pcVar39 + 0x6b550)" * (cast_expression "(code **)(pcVar39 + 0x6b550)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x6b550)" ( (binary_expression "pcVar39 + 0x6b550" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar36 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar36 = *(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      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }" else (compound_statement "{\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)piVar14[2];" (assignment_expression "pEVar30 = (Elf32_Ehdr *)piVar14[2]" identifier = (cast_expression "(Elf32_Ehdr *)piVar14[2]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar14[2]" identifier [ number_literal ]))) ;) }))) (expression_statement "iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);" (assignment_expression "iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18)" identifier = (call_expression "(**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18)" (parenthesized_expression "(**(code **)(pcVar36 + -0x7efc))" ( (pointer_expression "**(code **)(pcVar36 + -0x7efc)" * (pointer_expression "*(code **)(pcVar36 + -0x7efc)" * (cast_expression "(code **)(pcVar36 + -0x7efc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + -0x7efc)" ( (binary_expression "pcVar36 + -0x7efc" identifier + number_literal) ))))) )) (argument_list "(pEVar30,pEVar18)" ( identifier , identifier )))) ;) (expression_statement "pcVar36 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar36 = *(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 *)(pcVar36 + -0x7c6c) + 0x1c);" (assignment_expression "puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + -0x7c6c) + 0x1c)" ( (binary_expression "*(int *)(pcVar36 + -0x7c6c) + 0x1c" (pointer_expression "*(int *)(pcVar36 + -0x7c6c)" * (cast_expression "(int *)(pcVar36 + -0x7c6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + -0x7c6c)" ( (binary_expression "pcVar36 + -0x7c6c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar17 = 8;" (assignment_expression "uVar17 = 8" identifier = number_literal) ;) (do_statement "do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);" do (compound_statement "{\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    }" { (expression_statement "uVar42 = uVar17;" (assignment_expression "uVar42 = uVar17" identifier = identifier) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar28 = (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 "uVar17 = uVar42 - 1;" (assignment_expression "uVar17 = uVar42 - 1" identifier = (binary_expression "uVar42 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(pEVar28 < pEVar18)" ( (binary_expression "pEVar28 < pEVar18" identifier < identifier) )) ;) (if_statement "if (uVar42 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar42 == 0)" ( (binary_expression "uVar42 == 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 "uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;" (assignment_expression "uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4" identifier = (binary_expression "((iVar11 + 1U) / uVar42 + 1) * 4" (parenthesized_expression "((iVar11 + 1U) / uVar42 + 1)" ( (binary_expression "(iVar11 + 1U) / uVar42 + 1" (binary_expression "(iVar11 + 1U) / uVar42" (parenthesized_expression "(iVar11 + 1U)" ( (binary_expression "iVar11 + 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 (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(uVar17 < 0x7f01)" ( (binary_expression "uVar17 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }" { (expression_statement "iVar11 = -(uVar17 + 7 & 0xfffffff8);" (assignment_expression "iVar11 = -(uVar17 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar17 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar17 + 7 & 0xfffffff8)" ( (binary_expression "uVar17 + 7 & 0xfffffff8" (binary_expression "uVar17 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar10 = puVar3 + iVar11 + -0x38;" (assignment_expression "puVar10 = puVar3 + iVar11 + -0x38" identifier = (binary_expression "puVar3 + iVar11 + -0x38" (binary_expression "puVar3 + iVar11" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar11 + -0x28)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + iVar11 + -0x28)" ( (binary_expression "puVar3 + iVar11 + -0x28" (binary_expression "puVar3 + iVar11" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" else (compound_statement "{\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20)" (parenthesized_expression "(**(code **)(pcVar36 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar36 + -0x7d50)" * (pointer_expression "*(code **)(pcVar36 + -0x7d50)" * (cast_expression "(code **)(pcVar36 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + -0x7d50)" ( (binary_expression "pcVar36 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar3 + -0x20)" ( (binary_expression "puVar3 + -0x20" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar36 = *(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 "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar43 = 1;" (assignment_expression "uVar43 = 1" identifier = number_literal) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar42 = 6;" (assignment_expression "uVar42 = 6" identifier = number_literal) ;) (do_statement "do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);" do (compound_statement "{\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    }" { (expression_statement "uVar41 = uVar17 + 1;" (assignment_expression "uVar41 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = iVar11;" (assignment_expression "iVar16 = iVar11" identifier = identifier) ;) (expression_statement "uVar8 = uVar42;" (assignment_expression "uVar8 = uVar42" identifier = identifier) ;) (if_statement "if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }" if (parenthesized_expression "((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0)" ( (binary_expression "(uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0" (parenthesized_expression "(uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1))" ( (binary_expression "uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)" identifier & (pointer_expression "*(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)" * (cast_expression "(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (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) ))))) )) == number_literal) )) (compound_statement "{\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }" { (expression_statement "uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;" (assignment_expression "uVar8 = (uVar41 & 1) + 1 + uVar41 * 3" identifier = (binary_expression "(uVar41 & 1) + 1 + uVar41 * 3" (binary_expression "(uVar41 & 1) + 1" (parenthesized_expression "(uVar41 & 1)" ( (binary_expression "uVar41 & 1" identifier & number_literal) )) + number_literal) + (binary_expression "uVar41 * 3" identifier * number_literal))) ;) (if_statement "if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }" if (parenthesized_expression "((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20)" ( (binary_expression "(ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20" (binary_expression "(ulonglong)uVar42 * ZEXT48(pEVar18)" (cast_expression "(ulonglong)uVar42" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(pEVar18)" identifier (argument_list "(pEVar18)" ( identifier )))) >> number_literal) ))) == number_literal) )) (compound_statement "{\n          uVar8 = uVar42 * uVar8;\n        }" { (expression_statement "uVar8 = uVar42 * uVar8;" (assignment_expression "uVar8 = uVar42 * uVar8" identifier = (binary_expression "uVar42 * uVar8" identifier * identifier)) ;) }) (else_clause "else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }" else (compound_statement "{\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }" { (expression_statement "iVar16 = iVar11 + 1;" (assignment_expression "iVar16 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;" (assignment_expression "*(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42" (pointer_expression "*(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1)" * (cast_expression "(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar28->e_ident_magic_str + iVar11 * 4 + -1)" ( (binary_expression "pEVar28->e_ident_magic_str + iVar11 * 4 + -1" (binary_expression "pEVar28->e_ident_magic_str + iVar11 * 4" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar11 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) }))) })) (expression_statement "uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);" (assignment_expression "uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f)" identifier = (binary_expression "uVar43 * 2 - ((int)uVar43 >> 0x1f)" (binary_expression "uVar43 * 2" identifier * number_literal) - (parenthesized_expression "((int)uVar43 >> 0x1f)" ( (binary_expression "(int)uVar43 >> 0x1f" (cast_expression "(int)uVar43" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;" (assignment_expression "bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3" identifier = (binary_expression "uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3" identifier != (binary_expression "((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3" (parenthesized_expression "((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1)" ( (binary_expression "(uint)((int)&pEVar18[-1].e_shentsize + 1) | 1" (call_expression "(uint)((int)&pEVar18[-1].e_shentsize + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)&pEVar18[-1].e_shentsize + 1)" ( (binary_expression "(int)&pEVar18[-1].e_shentsize + 1" (cast_expression "(int)&pEVar18[-1].e_shentsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar18[-1].e_shentsize" & (field_expression "pEVar18[-1].e_shentsize" (subscript_expression "pEVar18[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) | number_literal) )) / number_literal))) ;) (expression_statement "iVar13 = iVar13 + (uVar43 & 1);" (assignment_expression "iVar13 = iVar13 + (uVar43 & 1)" identifier = (binary_expression "iVar13 + (uVar43 & 1)" identifier + (parenthesized_expression "(uVar43 & 1)" ( (binary_expression "uVar43 & 1" identifier & number_literal) )))) ;) (expression_statement "iVar11 = iVar16;" (assignment_expression "iVar11 = iVar16" identifier = identifier) ;) (expression_statement "uVar17 = uVar41;" (assignment_expression "uVar17 = uVar41" identifier = identifier) ;) (expression_statement "uVar42 = uVar8;" (assignment_expression "uVar42 = uVar8" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (if_statement "if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }" { (expression_statement "*(uint *)piVar14[2] = uVar8;" (assignment_expression "*(uint *)piVar14[2] = uVar8" (pointer_expression "*(uint *)piVar14[2]" * (cast_expression "(uint *)piVar14[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar14[2]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "piVar14[1] = 1;" (assignment_expression "piVar14[1] = 1" (subscript_expression "piVar14[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" else (compound_statement "{\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "pcVar39 = *(code **)(pcVar36 + -0x7dbc);" (assignment_expression "pcVar39 = *(code **)(pcVar36 + -0x7dbc)" identifier = (pointer_expression "*(code **)(pcVar36 + -0x7dbc)" * (cast_expression "(code **)(pcVar36 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + -0x7dbc)" ( (binary_expression "pcVar36 + -0x7dbc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;" (assignment_expression "*(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8" (pointer_expression "*(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1)" * (cast_expression "(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar28->e_ident_magic_str + iVar16 * 4 + -1)" ( (binary_expression "pEVar28->e_ident_magic_str + iVar16 * 4 + -1" (binary_expression "pEVar28->e_ident_magic_str + iVar16 * 4" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar16 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar39)(piVar14,pEVar28,iVar16 + 1);" (call_expression "(*pcVar39)(piVar14,pEVar28,iVar16 + 1)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(piVar14,pEVar28,iVar16 + 1)" ( identifier , identifier , (binary_expression "iVar16 + 1" identifier + number_literal) ))) ;) (expression_statement "pcVar36 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar36 = *(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 "piVar31 = *(int **)(puVar3 + -0x20);" (assignment_expression "piVar31 = *(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 (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" if (parenthesized_expression "(piVar31 != (int *)0x0)" ( (binary_expression "piVar31 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" { (expression_statement "(**(code **)(pcVar36 + -0x7a28))();" (call_expression "(**(code **)(pcVar36 + -0x7a28))()" (parenthesized_expression "(**(code **)(pcVar36 + -0x7a28))" ( (pointer_expression "**(code **)(pcVar36 + -0x7a28)" * (pointer_expression "*(code **)(pcVar36 + -0x7a28)" * (cast_expression "(code **)(pcVar36 + -0x7a28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + -0x7a28)" ( (binary_expression "pcVar36 + -0x7a28" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar36 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar36 = *(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)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }" else (compound_statement "{\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750)" ( (binary_expression "(int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750" (binary_expression "(int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc)" (binary_expression "(int)pEVar18 * 4" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(pcVar39 + 0x6affc)" * (cast_expression "(int *)(pcVar39 + 0x6affc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x6affc)" ( (binary_expression "pcVar39 + 0x6affc" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "*(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;" (assignment_expression "*(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27" (pointer_expression "*(undefined4 *)piVar14[2]" * (cast_expression "(undefined4 *)piVar14[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar14[2]" identifier [ number_literal ]))) = (pointer_expression "*(undefined4 *)pEVar27" * (cast_expression "(undefined4 *)pEVar27" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar14[1] = 1;" (assignment_expression "piVar14[1] = 1" (subscript_expression "piVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar31 = piVar14;" (assignment_expression "piVar31 = piVar14" identifier = identifier) ;) (expression_statement "pEVar28 = pEVar18;" (assignment_expression "pEVar28 = pEVar18" identifier = identifier) ;) (expression_statement "pEVar18 = pEVar27;" (assignment_expression "pEVar18 = pEVar27" identifier = identifier) ;) (expression_statement "puVar10 = puVar3 + -0x38;" (assignment_expression "puVar10 = puVar3 + -0x38" identifier = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) }))) (if_statement "if (*(int *)(puVar3 + -0x1c) == *piVar6) {\n    return *piVar6;\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 *piVar6;\n  }" { (return_statement "return *piVar6;" return (pointer_expression "*piVar6" * identifier) ;) })) (expression_statement "pcVar39 = *(code **)(pcVar36 + -0x7b70);" (assignment_expression "pcVar39 = *(code **)(pcVar36 + -0x7b70)" identifier = (pointer_expression "*(code **)(pcVar36 + -0x7b70)" * (cast_expression "(code **)(pcVar36 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + -0x7b70)" ( (binary_expression "pcVar36 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "pcVar40 = __gmpz_probab_prime_p;" (assignment_expression "pcVar40 = __gmpz_probab_prime_p" identifier = identifier) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar36 = *(code **)(pcVar39 + 0x6ae78);" (assignment_expression "pcVar36 = *(code **)(pcVar39 + 0x6ae78)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x6ae78)" * (cast_expression "(code **)(pcVar39 + 0x6ae78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x6ae78)" ( (binary_expression "pcVar39 + 0x6ae78" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar10 + -0x24) = piVar14;" (assignment_expression "*(int **)(puVar10 + -0x24) = piVar14" (pointer_expression "*(int **)(puVar10 + -0x24)" * (cast_expression "(int **)(puVar10 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x24)" ( (binary_expression "puVar10 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar10 + -0x20) = piVar6;" (assignment_expression "*(int **)(puVar10 + -0x20) = piVar6" (pointer_expression "*(int **)(puVar10 + -0x20)" * (cast_expression "(int **)(puVar10 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x20)" ( (binary_expression "puVar10 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar14 = *(int **)(pcVar39 + 0x6b270);" (assignment_expression "piVar14 = *(int **)(pcVar39 + 0x6b270)" identifier = (pointer_expression "*(int **)(pcVar39 + 0x6b270)" * (cast_expression "(int **)(pcVar39 + 0x6b270)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x6b270)" ( (binary_expression "pcVar39 + 0x6b270" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x1c)" ( (binary_expression "puVar10 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70;" (assignment_expression "*(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70" (pointer_expression "*(code **)(puVar10 + -0x88)" * (cast_expression "(code **)(puVar10 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) )))) = (binary_expression "pcVar39 + 0x72d70" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x14) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x14) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x28)" ( (binary_expression "puVar10 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar10 + -4) = pcVar40;" (assignment_expression "*(code **)(puVar10 + -4) = pcVar40" (pointer_expression "*(code **)(puVar10 + -4)" * (cast_expression "(code **)(puVar10 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar10 + -8) = puVar3 + -0x38;" (assignment_expression "*(undefined1 **)(puVar10 + -8) = puVar3 + -0x38" (pointer_expression "*(undefined1 **)(puVar10 + -8)" * (cast_expression "(undefined1 **)(puVar10 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = (binary_expression "puVar3 + -0x38" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0xc) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0xc) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + -0x2c) = *piVar14;" (assignment_expression "*(int *)(puVar10 + -0x2c) = *piVar14" (pointer_expression "*(int *)(puVar10 + -0x2c)" * (cast_expression "(int *)(puVar10 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x2c)" ( (binary_expression "puVar10 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "iVar11 = (*pcVar36)();" (assignment_expression "iVar11 = (*pcVar36)()" identifier = (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "puVar33 = (uint *)piVar31[2];" (assignment_expression "puVar33 = (uint *)piVar31[2]" identifier = (cast_expression "(uint *)piVar31[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar31[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar32 = (Elf32_Ehdr *)piVar31[1];" (assignment_expression "pEVar32 = (Elf32_Ehdr *)piVar31[1]" identifier = (cast_expression "(Elf32_Ehdr *)piVar31[1]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar31[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar17 = *puVar33;" (assignment_expression "uVar17 = *puVar33" identifier = (pointer_expression "*puVar33" * identifier)) ;) (if_statement "if (iVar11 < 1) {\n    pEVar20 = (Elf32_Ehdr *)0xf4240;\n    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);\n    iVar13 = *(int *)(puVar10 + -0x88);\n    if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;\n    *(uint **)(puVar10 + -0x6c) = puVar33;\n    piVar31 = (int *)(puVar10 + -0x74);\n    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;\n  }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n    pEVar20 = (Elf32_Ehdr *)0xf4240;\n    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);\n    iVar13 = *(int *)(puVar10 + -0x88);\n    if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;\n    *(uint **)(puVar10 + -0x6c) = puVar33;\n    piVar31 = (int *)(puVar10 + -0x74);\n    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;\n  }" { (expression_statement "pEVar20 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);" (assignment_expression "iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31)" identifier = (call_expression "(**(code **)(iVar13 + -0x7ab4))(piVar31)" (parenthesized_expression "(**(code **)(iVar13 + -0x7ab4))" ( (pointer_expression "**(code **)(iVar13 + -0x7ab4)" * (pointer_expression "*(code **)(iVar13 + -0x7ab4)" * (cast_expression "(code **)(iVar13 + -0x7ab4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7ab4)" ( (binary_expression "iVar13 + -0x7ab4" identifier + number_literal) ))))) )) (argument_list "(piVar31)" ( identifier )))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (if_statement "if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }" 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)) )) (compound_statement "{\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }" { (if_statement "if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }" if (parenthesized_expression "(uVar17 < 3)" ( (binary_expression "uVar17 < 3" identifier < number_literal) )) (compound_statement "{\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }" { (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" identifier = number_literal) ;) (if_statement "if (uVar17 != 2) {\n            iVar11 = 0;\n          }" if (parenthesized_expression "(uVar17 != 2)" ( (binary_expression "uVar17 != 2" identifier != number_literal) )) (compound_statement "{\n            iVar11 = 0;\n          }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }" else (compound_statement "{\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }" { (expression_statement "uVar42 = 3;" (assignment_expression "uVar42 = 3" identifier = number_literal) ;) (if_statement "if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }" if (parenthesized_expression "((uVar17 & 1) != 0)" ( (binary_expression "(uVar17 & 1) != 0" (parenthesized_expression "(uVar17 & 1)" ( (binary_expression "uVar17 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }" { (do_statement "do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);" do (compound_statement "{\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            }" { (if_statement "if (uVar42 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar42 == 0)" ( (binary_expression "uVar42 == 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 = uVar17 % uVar42;" (assignment_expression "uVar43 = uVar17 % uVar42" identifier = (binary_expression "uVar17 % uVar42" identifier % identifier)) ;) (if_statement "if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }" if (parenthesized_expression "(uVar17 / uVar42 < uVar42)" ( (binary_expression "uVar17 / uVar42 < uVar42" (binary_expression "uVar17 / uVar42" identifier / identifier) < identifier) )) (compound_statement "{\n                iVar11 = 2;\n                goto LAB_00032354;\n              }" { (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_00032354;" goto statement_identifier ;) })) (expression_statement "uVar42 = uVar42 + 2;" (assignment_expression "uVar42 = uVar42 + 2" identifier = (binary_expression "uVar42 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar43 != 0)" ( (binary_expression "uVar43 != 0" identifier != number_literal) )) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) })) }))) })) (goto_statement "goto LAB_00032354;" goto statement_identifier ;) })) (expression_statement "pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)-(int)pEVar32" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar32" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar32" - (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "*(uint **)(puVar10 + -0x6c) = puVar33;" (assignment_expression "*(uint **)(puVar10 + -0x6c) = puVar33" (pointer_expression "*(uint **)(puVar10 + -0x6c)" * (cast_expression "(uint **)(puVar10 + -0x6c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x6c)" ( (binary_expression "puVar10 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar31 = (int *)(puVar10 + -0x74);" (assignment_expression "piVar31 = (int *)(puVar10 + -0x74)" identifier = (cast_expression "(int *)(puVar10 + -0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x74)" ( (binary_expression "puVar10 + -0x74" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x70)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x70)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x70)" ( (binary_expression "puVar10 + -0x70" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (pEVar32 != (Elf32_Ehdr *)0x0) {\n    uVar17 = uVar17 & 1;\n    iVar11 = 0;\n    if (uVar17 == 0) goto LAB_00032354;\n    pEVar20 = pEVar32;\n    if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }\n  }" 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)) )) (compound_statement "{\n    uVar17 = uVar17 & 1;\n    iVar11 = 0;\n    if (uVar17 == 0) goto LAB_00032354;\n    pEVar20 = pEVar32;\n    if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }\n  }" { (expression_statement "uVar17 = uVar17 & 1;" (assignment_expression "uVar17 = uVar17 & 1" identifier = (binary_expression "uVar17 & 1" identifier & number_literal)) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (if_statement "if (uVar17 == 0) goto LAB_00032354;" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00032354;" goto statement_identifier ;)) (expression_statement "pEVar20 = pEVar32;" (assignment_expression "pEVar20 = pEVar32" identifier = identifier) ;) (if_statement "if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }" if (parenthesized_expression "((int)pEVar32 < 10)" ( (binary_expression "(int)pEVar32 < 10" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }" { (expression_statement "uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);" (assignment_expression "uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c)" identifier = (call_expression "(**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c)" (parenthesized_expression "(**(code **)(iVar13 + -0x7c24))" ( (pointer_expression "**(code **)(iVar13 + -0x7c24)" * (pointer_expression "*(code **)(iVar13 + -0x7c24)" * (cast_expression "(code **)(iVar13 + -0x7c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7c24)" ( (binary_expression "iVar13 + -0x7c24" identifier + number_literal) ))))) )) (argument_list "(puVar33,pEVar32,0xc0cfd797,0x53e5645c)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }" else (compound_statement "{\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }" { (expression_statement "uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);" (assignment_expression "uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797)" identifier = (call_expression "(**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797)" (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 "(puVar33,pEVar32,0xc0cfd797)" ( identifier , identifier , number_literal )))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) }))) (if_statement "if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }" if (parenthesized_expression "((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d))" ( (binary_expression "(((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)" (parenthesized_expression "(((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17))))))" ( (binary_expression "((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))" (parenthesized_expression "((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd))))" ( (binary_expression "(((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))" (parenthesized_expression "(((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7))" ( (binary_expression "((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)" (parenthesized_expression "((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5))" ( (binary_expression "(uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)" (parenthesized_expression "(uVar42 != (uVar42 / 3) * 3)" ( (binary_expression "uVar42 != (uVar42 / 3) * 3" identifier != (binary_expression "(uVar42 / 3) * 3" (parenthesized_expression "(uVar42 / 3)" ( (binary_expression "uVar42 / 3" identifier / number_literal) )) * number_literal)) )) && (parenthesized_expression "(uVar42 != (uVar42 / 5) * 5)" ( (binary_expression "uVar42 != (uVar42 / 5) * 5" identifier != (binary_expression "(uVar42 / 5) * 5" (parenthesized_expression "(uVar42 / 5)" ( (binary_expression "uVar42 / 5" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "(uVar42 != (uVar42 / 7) * 7)" ( (binary_expression "uVar42 != (uVar42 / 7) * 7" identifier != (binary_expression "(uVar42 / 7) * 7" (parenthesized_expression "(uVar42 / 7)" ( (binary_expression "uVar42 / 7" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))" ( (parenthesized_expression "(uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd))" ( (binary_expression "uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)" (binary_expression "uVar42 != (uVar42 / 0xb) * 0xb" identifier != (binary_expression "(uVar42 / 0xb) * 0xb" (parenthesized_expression "(uVar42 / 0xb)" ( (binary_expression "uVar42 / 0xb" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar42 != (uVar42 / 0xd) * 0xd)" ( (binary_expression "uVar42 != (uVar42 / 0xd) * 0xd" identifier != (binary_expression "(uVar42 / 0xd) * 0xd" (parenthesized_expression "(uVar42 / 0xd)" ( (binary_expression "uVar42 / 0xd" identifier / number_literal) )) * number_literal)) ))) )) ))) )) && (parenthesized_expression "((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))" ( (parenthesized_expression "(uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17))))" ( (binary_expression "uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))" (binary_expression "uVar42 != (uVar42 / 0x11) * 0x11" identifier != (binary_expression "(uVar42 / 0x11) * 0x11" (parenthesized_expression "(uVar42 / 0x11)" ( (binary_expression "uVar42 / 0x11" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))" ( (parenthesized_expression "(uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17))" ( (binary_expression "uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)" (binary_expression "uVar42 != (uVar42 / 0x13) * 0x13" identifier != (binary_expression "(uVar42 / 0x13) * 0x13" (parenthesized_expression "(uVar42 / 0x13)" ( (binary_expression "uVar42 / 0x13" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar42 != (uVar42 / 0x17) * 0x17)" ( (binary_expression "uVar42 != (uVar42 / 0x17) * 0x17" identifier != (binary_expression "(uVar42 / 0x17) * 0x17" (parenthesized_expression "(uVar42 / 0x17)" ( (binary_expression "uVar42 / 0x17" identifier / number_literal) )) * number_literal)) ))) )) ))) )) ))) )) && (parenthesized_expression "(uVar42 != (uVar42 / 0x1d) * 0x1d)" ( (binary_expression "uVar42 != (uVar42 / 0x1d) * 0x1d" identifier != (binary_expression "(uVar42 / 0x1d) * 0x1d" (parenthesized_expression "(uVar42 / 0x1d)" ( (binary_expression "uVar42 / 0x1d" identifier / number_literal) )) * number_literal)) ))) )) (compound_statement "{\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }" { (expression_statement "uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);" (assignment_expression "uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2)" identifier = (call_expression "(**(code **)(iVar13 + -0x7f14))(piVar31,2)" (parenthesized_expression "(**(code **)(iVar13 + -0x7f14))" ( (pointer_expression "**(code **)(iVar13 + -0x7f14)" * (pointer_expression "*(code **)(iVar13 + -0x7f14)" * (cast_expression "(code **)(iVar13 + -0x7f14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7f14)" ( (binary_expression "iVar13 + -0x7f14" identifier + number_literal) ))))) )) (argument_list "(piVar31,2)" ( identifier , number_literal )))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }" if (parenthesized_expression "(0x1f < uVar42)" ( (binary_expression "0x1f < uVar42" number_literal < identifier) )) (compound_statement "{\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar43 = 0x1f;" (assignment_expression "uVar43 = 0x1f" identifier = number_literal) ;) (do_statement "do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);" do (compound_statement "{\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        }" { (expression_statement "uVar8 = 3;" (assignment_expression "uVar8 = 3" identifier = number_literal) ;) (do_statement "do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);" do (compound_statement "{\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          }" { (if_statement "if (uVar8 == 0) {\n              trap(7);\n            }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 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 "uVar41 = uVar43 % uVar8;" (assignment_expression "uVar41 = uVar43 % uVar8" identifier = (binary_expression "uVar43 % uVar8" identifier % identifier)) ;) (if_statement "if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }" if (parenthesized_expression "(uVar43 / uVar8 < uVar8)" ( (binary_expression "uVar43 / uVar8 < uVar8" (binary_expression "uVar43 / uVar8" identifier / identifier) < identifier) )) (compound_statement "{\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }" { (if_statement "if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }" if (parenthesized_expression "(iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0)" ( (binary_expression "iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0" (binary_expression "iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20)" (binary_expression "iVar16 * uVar17" identifier * identifier) + (cast_expression "(int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20)" ( (binary_expression "(ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20" (binary_expression "(ulonglong)uVar17 * (ulonglong)uVar43" (cast_expression "(ulonglong)uVar17" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar43" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) )))) == number_literal) )) (compound_statement "{\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }" { (expression_statement "iVar26 = iVar11 + 1;" (assignment_expression "iVar26 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);" (assignment_expression "uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43)" identifier = (call_expression "(uint)((ulonglong)uVar17 * (ulonglong)uVar43)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar17 * (ulonglong)uVar43)" ( (binary_expression "(ulonglong)uVar17 * (ulonglong)uVar43" (cast_expression "(ulonglong)uVar17" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar43" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ;) }) (else_clause "else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }" else (compound_statement "{\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }" { (expression_statement "*(uint *)(puVar10 + -0x7c) = uVar42;" (assignment_expression "*(uint *)(puVar10 + -0x7c) = uVar42" (pointer_expression "*(uint *)(puVar10 + -0x7c)" * (cast_expression "(uint *)(puVar10 + -0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x7c)" ( (binary_expression "puVar10 + -0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + -0x80) = iVar11;" (assignment_expression "*(int *)(puVar10 + -0x80) = iVar11" (pointer_expression "*(int *)(puVar10 + -0x80)" * (cast_expression "(int *)(puVar10 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x80)" ( (binary_expression "puVar10 + -0x80" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }" if (parenthesized_expression "((int)pEVar32 < 10)" ( (binary_expression "(int)pEVar32 < 10" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }" { (expression_statement "uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);" (assignment_expression "uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0)" identifier = (call_expression "(**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,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 "(puVar33,pEVar32,uVar17,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar10 + -0x80);" (assignment_expression "iVar11 = *(int *)(puVar10 + -0x80)" identifier = (pointer_expression "*(int *)(puVar10 + -0x80)" * (cast_expression "(int *)(puVar10 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x80)" ( (binary_expression "puVar10 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "uVar42 = *(uint *)(puVar10 + -0x7c);" (assignment_expression "uVar42 = *(uint *)(puVar10 + -0x7c)" identifier = (pointer_expression "*(uint *)(puVar10 + -0x7c)" * (cast_expression "(uint *)(puVar10 + -0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x7c)" ( (binary_expression "puVar10 + -0x7c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }" else (compound_statement "{\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }" { (expression_statement "uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);" (assignment_expression "uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17)" identifier = (call_expression "(**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17)" (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 "(puVar33,pEVar32,uVar17)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar42 = *(uint *)(puVar10 + -0x7c);" (assignment_expression "uVar42 = *(uint *)(puVar10 + -0x7c)" identifier = (pointer_expression "*(uint *)(puVar10 + -0x7c)" * (cast_expression "(uint *)(puVar10 + -0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x7c)" ( (binary_expression "puVar10 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar10 + -0x80);" (assignment_expression "iVar11 = *(int *)(puVar10 + -0x80)" identifier = (pointer_expression "*(int *)(puVar10 + -0x80)" * (cast_expression "(int *)(puVar10 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x80)" ( (binary_expression "puVar10 + -0x80" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar17 = uVar43;" (assignment_expression "uVar17 = uVar43" identifier = identifier) ;) (if_statement "if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }" if (parenthesized_expression "(iVar11 + -1 != -1)" ( (binary_expression "iVar11 + -1 != -1" (binary_expression "iVar11 + -1" identifier + number_literal) != number_literal) )) (compound_statement "{\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }" { (if_statement "if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -1) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -1) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -1) * 4" identifier + (binary_expression "(iVar11 + -1) * 4" (parenthesized_expression "(iVar11 + -1)" ( (binary_expression "iVar11 + -1" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    trap(7);\n                  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -1) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -1) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -1) * 4" identifier + (binary_expression "(iVar11 + -1) * 4" (parenthesized_expression "(iVar11 + -1)" ( (binary_expression "iVar11 + -1" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" { (if_statement "if (iVar11 + -2 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -2 == -1)" ( (binary_expression "iVar11 + -2 == -1" (binary_expression "iVar11 + -2" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -2) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -2) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -2) * 4" identifier + (binary_expression "(iVar11 + -2) * 4" (parenthesized_expression "(iVar11 + -2)" ( (binary_expression "iVar11 + -2" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                      trap(7);\n                    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -2) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -2) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -2) * 4" identifier + (binary_expression "(iVar11 + -2) * 4" (parenthesized_expression "(iVar11 + -2)" ( (binary_expression "iVar11 + -2" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" { (if_statement "if (iVar11 + -3 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -3 == -1)" ( (binary_expression "iVar11 + -3 == -1" (binary_expression "iVar11 + -3" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -3) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -3) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -3) * 4" identifier + (binary_expression "(iVar11 + -3) * 4" (parenthesized_expression "(iVar11 + -3)" ( (binary_expression "iVar11 + -3" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                        trap(7);\n                      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -3) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -3) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -3) * 4" identifier + (binary_expression "(iVar11 + -3) * 4" (parenthesized_expression "(iVar11 + -3)" ( (binary_expression "iVar11 + -3" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" { (if_statement "if (iVar11 + -4 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -4 == -1)" ( (binary_expression "iVar11 + -4 == -1" (binary_expression "iVar11 + -4" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -4) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -4) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -4) * 4" identifier + (binary_expression "(iVar11 + -4) * 4" (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                          trap(7);\n                        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -4) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -4) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -4) * 4" identifier + (binary_expression "(iVar11 + -4) * 4" (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" { (if_statement "if (iVar11 + -5 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -5 == -1)" ( (binary_expression "iVar11 + -5 == -1" (binary_expression "iVar11 + -5" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -5) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -5) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -5) * 4" identifier + (binary_expression "(iVar11 + -5) * 4" (parenthesized_expression "(iVar11 + -5)" ( (binary_expression "iVar11 + -5" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                            trap(7);\n                          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -5) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -5) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -5) * 4" identifier + (binary_expression "(iVar11 + -5) * 4" (parenthesized_expression "(iVar11 + -5)" ( (binary_expression "iVar11 + -5" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" { (if_statement "if (iVar11 + -6 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -6 == -1)" ( (binary_expression "iVar11 + -6 == -1" (binary_expression "iVar11 + -6" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -6) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -6) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -6) * 4" identifier + (binary_expression "(iVar11 + -6) * 4" (parenthesized_expression "(iVar11 + -6)" ( (binary_expression "iVar11 + -6" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                              trap(7);\n                            }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -6) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -6) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -6) * 4" identifier + (binary_expression "(iVar11 + -6) * 4" (parenthesized_expression "(iVar11 + -6)" ( (binary_expression "iVar11 + -6" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }" { (if_statement "if (iVar11 + -7 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -7 == -1)" ( (binary_expression "iVar11 + -7 == -1" (binary_expression "iVar11 + -7" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -7) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -7) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -7) * 4" identifier + (binary_expression "(iVar11 + -7) * 4" (parenthesized_expression "(iVar11 + -7)" ( (binary_expression "iVar11 + -7" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                trap(7);\n                              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -7) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -7) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -7) * 4" identifier + (binary_expression "(iVar11 + -7) * 4" (parenthesized_expression "(iVar11 + -7)" ( (binary_expression "iVar11 + -7" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }" { (if_statement "if (iVar11 + -8 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -8 == -1)" ( (binary_expression "iVar11 + -8 == -1" (binary_expression "iVar11 + -8" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -8) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -8) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -8) * 4" identifier + (binary_expression "(iVar11 + -8) * 4" (parenthesized_expression "(iVar11 + -8)" ( (binary_expression "iVar11 + -8" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                  trap(7);\n                                }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -8) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -8) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -8) * 4" identifier + (binary_expression "(iVar11 + -8) * 4" (parenthesized_expression "(iVar11 + -8)" ( (binary_expression "iVar11 + -8" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }" { (if_statement "if (iVar11 + -9 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -9 == -1)" ( (binary_expression "iVar11 + -9 == -1" (binary_expression "iVar11 + -9" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -9) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -9) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -9) * 4" identifier + (binary_expression "(iVar11 + -9) * 4" (parenthesized_expression "(iVar11 + -9)" ( (binary_expression "iVar11 + -9" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                    trap(7);\n                                  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -9) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -9) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -9) * 4" identifier + (binary_expression "(iVar11 + -9) * 4" (parenthesized_expression "(iVar11 + -9)" ( (binary_expression "iVar11 + -9" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }" { (if_statement "if (iVar11 + -10 == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -10 == -1)" ( (binary_expression "iVar11 + -10 == -1" (binary_expression "iVar11 + -10" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -10) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -10) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -10) * 4" identifier + (binary_expression "(iVar11 + -10) * 4" (parenthesized_expression "(iVar11 + -10)" ( (binary_expression "iVar11 + -10" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                      trap(7);\n                                    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       )" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -10) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -10) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -10) * 4" identifier + (binary_expression "(iVar11 + -10) * 4" (parenthesized_expression "(iVar11 + -10)" ( (binary_expression "iVar11 + -10" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }" { (if_statement "if (iVar11 + -0xb == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -0xb == -1)" ( (binary_expression "iVar11 + -0xb == -1" (binary_expression "iVar11 + -0xb" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -0xb) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xb) * 4" identifier + (binary_expression "(iVar11 + -0xb) * 4" (parenthesized_expression "(iVar11 + -0xb)" ( (binary_expression "iVar11 + -0xb" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                        trap(7);\n                                      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -0xb) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xb) * 4" identifier + (binary_expression "(iVar11 + -0xb) * 4" (parenthesized_expression "(iVar11 + -0xb)" ( (binary_expression "iVar11 + -0xb" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }" { (if_statement "if (iVar11 + -0xc == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -0xc == -1)" ( (binary_expression "iVar11 + -0xc == -1" (binary_expression "iVar11 + -0xc" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -0xc) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xc) * 4" identifier + (binary_expression "(iVar11 + -0xc) * 4" (parenthesized_expression "(iVar11 + -0xc)" ( (binary_expression "iVar11 + -0xc" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                          trap(7);\n                                        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -0xc) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xc) * 4" identifier + (binary_expression "(iVar11 + -0xc) * 4" (parenthesized_expression "(iVar11 + -0xc)" ( (binary_expression "iVar11 + -0xc" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }" { (if_statement "if (iVar11 + -0xd == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -0xd == -1)" ( (binary_expression "iVar11 + -0xd == -1" (binary_expression "iVar11 + -0xd" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -0xd) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -0xd) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xd) * 4" identifier + (binary_expression "(iVar11 + -0xd) * 4" (parenthesized_expression "(iVar11 + -0xd)" ( (binary_expression "iVar11 + -0xd" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                            trap(7);\n                                          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68)" ( (binary_expression "puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68" (binary_expression "puVar10 +\n                                                               (iVar11 + -0xd) * 4" identifier + (binary_expression "(iVar11 + -0xd) * 4" (parenthesized_expression "(iVar11 + -0xd)" ( (binary_expression "iVar11 + -0xd" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }" { (if_statement "if (iVar11 + -0xe == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -0xe == -1)" ( (binary_expression "iVar11 + -0xe == -1" (binary_expression "iVar11 + -0xe" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -0xe) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -0xe) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xe) * 4" identifier + (binary_expression "(iVar11 + -0xe) * 4" (parenthesized_expression "(iVar11 + -0xe)" ( (binary_expression "iVar11 + -0xe" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                              trap(7);\n                                            }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (if_statement "if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)" ( (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68)" ( (binary_expression "puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68" (binary_expression "puVar10 +\n                                                                 (iVar11 + -0xe) * 4" identifier + (binary_expression "(iVar11 + -0xe) * 4" (parenthesized_expression "(iVar11 + -0xe)" ( (binary_expression "iVar11 + -0xe" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }" { (if_statement "if (iVar11 + -0xf == -1) goto LAB_0003295c;" if (parenthesized_expression "(iVar11 + -0xf == -1)" ( (binary_expression "iVar11 + -0xf == -1" (binary_expression "iVar11 + -0xf" identifier + number_literal) == number_literal) )) (goto_statement "goto LAB_0003295c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }" if (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0)" ( (binary_expression "*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + (iVar11 + -0xf) * 4 + -0x68)" ( (binary_expression "puVar10 + (iVar11 + -0xf) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xf) * 4" identifier + (binary_expression "(iVar11 + -0xf) * 4" (parenthesized_expression "(iVar11 + -0xf)" ( (binary_expression "iVar11 + -0xf" identifier + number_literal) )) * number_literal)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                                trap(7);\n                                              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar26 = 1;" (assignment_expression "iVar26 = 1" identifier = number_literal) ;) (if_statement "if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }" if (parenthesized_expression "(uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 )" ( (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68)" identifier % (pointer_expression "*(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68)" ( (binary_expression "puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68" (binary_expression "puVar10 +\n                                                                   (iVar11 + -0xf) * 4" identifier + (binary_expression "(iVar11 + -0xf) * 4" (parenthesized_expression "(iVar11 + -0xf)" ( (binary_expression "iVar11 + -0xf" identifier + number_literal) )) * number_literal)) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00032678;" goto statement_identifier ;) })) })) })) })) })) })) })) })) })) })) })) })) })) })) })) (expression_statement "pEVar20 = pEVar32;" (assignment_expression "pEVar20 = pEVar32" identifier = identifier) ;) (expression_statement "iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);" (assignment_expression "iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33)" identifier = (call_expression "(**(code **)(iVar13 + -0x7b80))(puVar33)" (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 "(puVar33)" ( identifier )))) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (iVar26 == 0) goto LAB_00032354;" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00032354;" goto statement_identifier ;)) (expression_statement "(**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);" (call_expression "(**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770)" (parenthesized_expression "(**(code **)(iVar13 + -0x7c20))" ( (pointer_expression "**(code **)(iVar13 + -0x7c20)" * (pointer_expression "*(code **)(iVar13 + -0x7c20)" * (cast_expression "(code **)(iVar13 + -0x7c20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7c20)" ( (binary_expression "iVar13 + -0x7c20" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770)" ( (binary_expression "*(int *)(iVar13 + -0x7fd4) + 0x37cc" (pointer_expression "*(int *)(iVar13 + -0x7fd4)" * (cast_expression "(int *)(iVar13 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + -0x7fd4)" ( (binary_expression "iVar13 + -0x7fd4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(iVar13 + -0x7fd4) + 0x3770" (pointer_expression "*(int *)(iVar13 + -0x7fd4)" * (cast_expression "(int *)(iVar13 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + -0x7fd4)" ( (binary_expression "iVar13 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) })) (labeled_statement "LAB_0003295c:\n                iVar26 = 1;" statement_identifier : (expression_statement "iVar26 = 1;" (assignment_expression "iVar26 = 1" identifier = number_literal) ;)) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;" statement_identifier : (expression_statement "*(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;" (assignment_expression "*(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43" (pointer_expression "*(uint *)(puVar10 + iVar11 * 4 + -0x68)" * (cast_expression "(uint *)(puVar10 + iVar11 * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + iVar11 * 4 + -0x68)" ( (binary_expression "puVar10 + iVar11 * 4 + -0x68" (binary_expression "puVar10 + iVar11 * 4" identifier + (binary_expression "iVar11 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;)) (break_statement "break;" break ;) })) (expression_statement "uVar8 = uVar8 + 2;" (assignment_expression "uVar8 = uVar8 + 2" identifier = (binary_expression "uVar8 + 2" identifier + number_literal)) ;) (expression_statement "iVar26 = iVar11;" (assignment_expression "iVar26 = iVar11" identifier = identifier) ;) }) while (parenthesized_expression "(uVar41 != 0)" ( (binary_expression "uVar41 != 0" identifier != number_literal) )) ;) (expression_statement "uVar8 = uVar43 + 2;" (assignment_expression "uVar8 = uVar43 + 2" identifier = (binary_expression "uVar43 + 2" identifier + number_literal)) ;) (expression_statement "iVar16 = (uint)(uVar8 < uVar43) + iVar16;" (assignment_expression "iVar16 = (uint)(uVar8 < uVar43) + iVar16" identifier = (binary_expression "(uint)(uVar8 < uVar43) + iVar16" (call_expression "(uint)(uVar8 < uVar43)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 < uVar43)" ( (binary_expression "uVar8 < uVar43" identifier < identifier) ))) + identifier)) ;) (expression_statement "iVar11 = iVar26;" (assignment_expression "iVar11 = iVar26" identifier = identifier) ;) (expression_statement "uVar43 = uVar8;" (assignment_expression "uVar43 = uVar8" identifier = identifier) ;) }) while (parenthesized_expression "(uVar8 < uVar42)" ( (binary_expression "uVar8 < uVar42" identifier < identifier) )) ;) })) (expression_statement "iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);" (assignment_expression "iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31)" identifier = (call_expression "(**(code **)(iVar13 + -0x7d48))(piVar31)" (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 "(piVar31)" ( identifier )))) ;) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" identifier = (pointer_expression "*(int *)(puVar10 + -0x88)" * (cast_expression "(int *)(puVar10 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x88)" ( (binary_expression "puVar10 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar20 = pEVar28;" (assignment_expression "pEVar20 = pEVar28" identifier = identifier) ;) (goto_statement "goto LAB_00032354;" goto statement_identifier ;) })) })) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00032354:\n  iVar16 = *(int *)(puVar10 + -0x2c);" statement_identifier : (expression_statement "iVar16 = *(int *)(puVar10 + -0x2c);" (assignment_expression "iVar16 = *(int *)(puVar10 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar10 + -0x2c)" * (cast_expression "(int *)(puVar10 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x2c)" ( (binary_expression "puVar10 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar16 != *piVar14) {\n    pcVar39 = *(code **)(iVar13 + -0x7b70);\n    uVar25 = 0x32974;\n    (*pcVar39)();\n    pcVar36 = pcVar39 + 0x726c0;\n    pcVar9 = *(char **)(pcVar39 + 0x6a808);\n    *(int **)(puVar10 + -0xa0) = piVar14;\n    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;\n    *(code **)(puVar10 + -0xb0) = pcVar36;\n    *(undefined4 *)(puVar10 + -0x9c) = uVar25;\n    if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }\n    pEVar32 = pEVar20;\n    if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);\n    if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }\n    return iVar11;\n  }" if (parenthesized_expression "(iVar16 != *piVar14)" ( (binary_expression "iVar16 != *piVar14" identifier != (pointer_expression "*piVar14" * identifier)) )) (compound_statement "{\n    pcVar39 = *(code **)(iVar13 + -0x7b70);\n    uVar25 = 0x32974;\n    (*pcVar39)();\n    pcVar36 = pcVar39 + 0x726c0;\n    pcVar9 = *(char **)(pcVar39 + 0x6a808);\n    *(int **)(puVar10 + -0xa0) = piVar14;\n    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;\n    *(code **)(puVar10 + -0xb0) = pcVar36;\n    *(undefined4 *)(puVar10 + -0x9c) = uVar25;\n    if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }\n    pEVar32 = pEVar20;\n    if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);\n    if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }\n    return iVar11;\n  }" { (expression_statement "pcVar39 = *(code **)(iVar13 + -0x7b70);" (assignment_expression "pcVar39 = *(code **)(iVar13 + -0x7b70)" identifier = (pointer_expression "*(code **)(iVar13 + -0x7b70)" * (cast_expression "(code **)(iVar13 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + -0x7b70)" ( (binary_expression "iVar13 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = 0x32974;" (assignment_expression "uVar25 = 0x32974" identifier = number_literal) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar36 = pcVar39 + 0x726c0;" (assignment_expression "pcVar36 = pcVar39 + 0x726c0" identifier = (binary_expression "pcVar39 + 0x726c0" identifier + number_literal)) ;) (expression_statement "pcVar9 = *(char **)(pcVar39 + 0x6a808);" (assignment_expression "pcVar9 = *(char **)(pcVar39 + 0x6a808)" identifier = (pointer_expression "*(char **)(pcVar39 + 0x6a808)" * (cast_expression "(char **)(pcVar39 + 0x6a808)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x6a808)" ( (binary_expression "pcVar39 + 0x6a808" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar10 + -0xa0) = piVar14;" (assignment_expression "*(int **)(puVar10 + -0xa0) = piVar14" (pointer_expression "*(int **)(puVar10 + -0xa0)" * (cast_expression "(int **)(puVar10 + -0xa0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xa0)" ( (binary_expression "puVar10 + -0xa0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0xa4)" * (cast_expression "(Elf32_Ehdr **)(puVar10 + -0xa4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xa4)" ( (binary_expression "puVar10 + -0xa4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar10 + -0xb0) = pcVar36;" (assignment_expression "*(code **)(puVar10 + -0xb0) = pcVar36" (pointer_expression "*(code **)(puVar10 + -0xb0)" * (cast_expression "(code **)(puVar10 + -0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xb0)" ( (binary_expression "puVar10 + -0xb0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x9c) = uVar25;" (assignment_expression "*(undefined4 *)(puVar10 + -0x9c) = uVar25" (pointer_expression "*(undefined4 *)(puVar10 + -0x9c)" * (cast_expression "(undefined4 *)(puVar10 + -0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x9c)" ( (binary_expression "puVar10 + -0x9c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }" if (parenthesized_expression "(*pcVar9 == '\0')" ( (binary_expression "*pcVar9 == '\0'" (pointer_expression "*pcVar9" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }" { (expression_statement "pcVar36 = *(code **)(pcVar39 + 0x6ac84);" (assignment_expression "pcVar36 = *(code **)(pcVar39 + 0x6ac84)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x6ac84)" * (cast_expression "(code **)(pcVar39 + 0x6ac84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x6ac84)" ( (binary_expression "pcVar39 + 0x6ac84" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);" (assignment_expression "uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc)" identifier = (pointer_expression "*(undefined4 *)(pcVar39 + 0x6a8fc)" * (cast_expression "(undefined4 *)(pcVar39 + 0x6a8fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x6a8fc)" ( (binary_expression "pcVar39 + 0x6a8fc" identifier + number_literal) ))))) ;) (expression_statement "*pcVar9 = '\x01';" (assignment_expression "*pcVar9 = '\x01'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(*pcVar36)(uVar25);" (call_expression "(*pcVar36)(uVar25)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(uVar25)" ( identifier ))) ;) (expression_statement "pcVar36 = *(code **)(puVar10 + -0xb0);" (assignment_expression "pcVar36 = *(code **)(puVar10 + -0xb0)" identifier = (pointer_expression "*(code **)(puVar10 + -0xb0)" * (cast_expression "(code **)(puVar10 + -0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xb0)" ( (binary_expression "puVar10 + -0xb0" identifier + number_literal) ))))) ;) })) (expression_statement "pEVar32 = pEVar20;" (assignment_expression "pEVar32 = pEVar20" identifier = identifier) ;) (if_statement "if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }" if (parenthesized_expression "((int)pEVar20 < 0)" ( (binary_expression "(int)pEVar20 < 0" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }" { (expression_statement "pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)-(int)pEVar20" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar20" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar20" - (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);" (assignment_expression "iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5)" identifier = (call_expression "(**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5)" (parenthesized_expression "(**(code **)(pcVar36 + -0x7f7c))" ( (pointer_expression "**(code **)(pcVar36 + -0x7f7c)" * (pointer_expression "*(code **)(pcVar36 + -0x7f7c)" * (cast_expression "(code **)(pcVar36 + -0x7f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + -0x7f7c)" ( (binary_expression "pcVar36 + -0x7f7c" identifier + number_literal) ))))) )) (argument_list "(iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5)" ( identifier , (pointer_expression "*(undefined4 *)(pcVar36 + -0x7dc4)" * (cast_expression "(undefined4 *)(pcVar36 + -0x7dc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + -0x7dc4)" ( (binary_expression "pcVar36 + -0x7dc4" identifier + number_literal) )))) , (binary_expression "(int)pEVar32 << 5" (cast_expression "(int)pEVar32" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (if_statement "if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }" if (parenthesized_expression "((int)pEVar20 < 0)" ( (binary_expression "(int)pEVar20 < 0" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }" { (expression_statement "iVar11 = -*(int *)(iVar16 + 4);" (assignment_expression "iVar11 = -*(int *)(iVar16 + 4)" identifier = (unary_expression "-*(int *)(iVar16 + 4)" - (pointer_expression "*(int *)(iVar16 + 4)" * (cast_expression "(int *)(iVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(iVar16 + 4) = iVar11;" (assignment_expression "*(int *)(iVar16 + 4) = iVar11" (pointer_expression "*(int *)(iVar16 + 4)" * (cast_expression "(int *)(iVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))) = identifier) ;) })) (return_statement "return iVar11;" return identifier ;) })) (return_statement "return iVar11;" return 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 (pointer_declarator * 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 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 < (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 *))) ) (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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)) / (cast_expression ( (type_descriptor TYPE) ) 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)) % (cast_expression ( (type_descriptor TYPE) ) 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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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)) ))) / (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 (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) % (cast_expression ( (type_descriptor TYPE) ) IDENT)) << LIT) | 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 (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) )))) ))) < 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) ))) <= (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) )))) ))))) ))) )) ))) )) (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 IDENT * (cast_expression ( (type_descriptor TYPE) ) 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 *)) ) IDENT)) ;) (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 ( (binary_expression (binary_expression IDENT < IDENT) || (parenthesized_expression ( (binary_expression IDENT <= 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (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) ;) }) (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 IDENT = (binary_expression (binary_expression IDENT + 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 = (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 (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 (cast_expression ( (type_descriptor TYPE) ) 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 = (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 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 *))) ) (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 (cast_expression ( (type_descriptor TYPE) ) 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 * (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 *)) ) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_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 (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 = 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 = (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 *)) ) 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_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 = (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) ;) (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 = (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 *))) ) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (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 = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 * 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 = (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (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 { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (field_expression IDENT -> field_identifier))) ;) (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) ) 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) + (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 *)) ) IDENT))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) (if_statement if (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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) ) IDENT) + LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT -> field_identifier))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT -> field_identifier))) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (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) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 *)) ) (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 = (binary_expression IDENT + 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 *)) ) (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 = (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 * 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) ))))) ;) (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) ))))) < (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) (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 (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 = (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 (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 * (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 * (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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (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)) )))) ;) }) (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 (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) ))))) ;) }) (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 *)) ) (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) })) })) })) })) })) })) })) })) })) })) })) })) })) (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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (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) ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (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) ;) }) while (parenthesized_expression ( (binary_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 = (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 { (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 ;) })) (return_statement return IDENT ;) })))
(function_definition "int FUN_000311c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *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  int *piVar6;\n  byte *pbVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  byte *pbVar12;\n  int iVar13;\n  int *piVar14;\n  undefined4 uVar15;\n  int iVar16;\n  uint uVar17;\n  Elf32_Ehdr *pEVar18;\n  undefined4 uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 *puVar21;\n  undefined4 uVar22;\n  undefined1 *puVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *in_t1;\n  Elf32_Ehdr *pEVar27;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *pEVar29;\n  Elf32_Ehdr *pEVar30;\n  int *piVar31;\n  Elf32_Ehdr *pEVar32;\n  uint *puVar33;\n  undefined *puVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  code *pcVar39;\n  code *pcVar40;\n  uint uVar41;\n  uint uVar42;\n  uint uVar43;\n  undefined8 uVar44;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;\n  puVar37 = auStack_58;\n  pEVar32 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (pEVar32 < (Elf32_Ehdr *)0x7f01) {\n    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);\n    puVar37 = auStack_58 + iVar11;\n    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }\n  uVar17 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar17 < 0x7f01) {\n    iVar11 = -(uVar17 + 7 & 0xfffffff8);\n    puVar3 = puVar37 + iVar11 + 0x18;\n    puVar37 = puVar37 + iVar11;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar25 = *param_2;\n    if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }\n  }\n  *(undefined1 **)(puVar37 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar37 + 0x10) = param_6;\n  pEVar18 = param_3;\n  pEVar27 = param_5;\n  FUN_00030f30(pEVar28);\n  pEVar30 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar18 = *(Elf32_Ehdr **)pEVar28;\n    pEVar5 = param_1;\n    pEVar29 = pEVar28;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 = pEVar18;\n  }\n  piVar14 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if (local_2c == *(int *)pEVar20) {\n    return *(int *)pEVar20;\n  }\n  pcVar39 = __gmpz_powm_ui;\n  puVar34 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  puVar35 = puVar34 + 0x73c70;\n  puVar4 = *(undefined4 **)(puVar34 + 0x6c170);\n  puVar10 = puVar37 + -0xa8;\n  puVar3 = puVar37 + -0xa8;\n  puVar38 = puVar37 + -0xa8;\n  *(undefined1 **)(puVar37 + -8) = auStack_58;\n  *(undefined4 **)(puVar37 + -0x20) = param_2;\n  *(code **)(puVar37 + -4) = pcVar39;\n  *(undefined4 **)(puVar37 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar37 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar37 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30;\n  *(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28;\n  *(Elf32_Ehdr **)(puVar37 + -0x28) = param_1;\n  *(undefined **)(puVar37 + -0x90) = puVar35;\n  *(int **)(puVar37 + -0x54) = piVar14;\n  *(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18;\n  *(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27;\n  *(undefined4 *)(puVar37 + -0x2c) = *puVar4;\n  pEVar29 = param_4;\n  if (param_4 < (Elf32_Ehdr *)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar32 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;\n    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);\n    uVar42 = uVar43;\n    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }\n    uVar42 = uVar17 << 0x10 | uVar42;\n    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);\n    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }\n    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar18 = (Elf32_Ehdr *)lVar2;\n    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n    uVar17 = uVar42;\n    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }\n    *(uint *)(puVar37 + -0x44) = uVar17;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);\n    pEVar30 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);\n    if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar17 = *(int *)(puVar37 + -0x50) + 4;\n    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);\n    *(uint *)(puVar37 + -0x70) = uVar17;\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }\n    uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n    pEVar18 = pEVar20;\n    FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);\n    puVar35 = *(undefined **)(puVar37 + -0x90);\n    pEVar30 = pEVar32;\n    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }\n    puVar4 = *(undefined4 **)(puVar37 + -100);\n    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);\n    pEVar18 = (Elf32_Ehdr *)*puVar4;\n    pEVar28 = param_6;\n    puVar10 = puVar23;\n    if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar28 = pEVar18;\n    param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);\n    iVar11 = 0x1f - (int)param_1;\n    param_3 = pEVar30;\n    if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }\nLAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);\n    piVar6 = *(int **)(puVar37 + -0x58);\n    if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }\n  else {\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }\n  if (*(int *)(puVar37 + -0x2c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(puVar35 + -0x7b70);\n  uVar25 = 0x3206c;\n  (*pcVar39)();\n  pcVar36 = pcVar39 + 0x72fd0;\n  puVar10 = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29;\n  piVar6 = *(int **)(pcVar39 + 0x6b4d0);\n  *(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar25;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar30;\n  *(code **)(puVar3 + -0x28) = pcVar36;\n  *(int *)(puVar3 + -0x1c) = *piVar6;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar18) {\n    if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);\n    pcVar36 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);\n    uVar17 = 8;\n    do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);\n    if (uVar42 == 0) {\n      trap(7);\n    }\n    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    iVar13 = 0;\n    uVar43 = 1;\n    iVar11 = 0;\n    uVar17 = 0;\n    uVar42 = 6;\n    do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);\n    if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    piVar31 = *(int **)(puVar3 + -0x20);\n    if (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(pcVar36 + -0x7b70);\n  pcVar40 = __gmpz_probab_prime_p;\n  (*pcVar39)();\n  pcVar36 = *(code **)(pcVar39 + 0x6ae78);\n  *(int **)(puVar10 + -0x24) = piVar14;\n  *(int **)(puVar10 + -0x20) = piVar6;\n  piVar14 = *(int **)(pcVar39 + 0x6b270);\n  *(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30;\n  pEVar20 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70;\n  *(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar10 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18;\n  *(code **)(puVar10 + -4) = pcVar40;\n  *(undefined1 **)(puVar10 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar10 + -0xc) = param_6;\n  *(int *)(puVar10 + -0x2c) = *piVar14;\n  iVar11 = (*pcVar36)();\n  puVar33 = (uint *)piVar31[2];\n  iVar13 = *(int *)(puVar10 + -0x88);\n  pEVar32 = (Elf32_Ehdr *)piVar31[1];\n  uVar17 = *puVar33;\n  if (iVar11 < 1) {\n    pEVar20 = (Elf32_Ehdr *)0xf4240;\n    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);\n    iVar13 = *(int *)(puVar10 + -0x88);\n    if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;\n    *(uint **)(puVar10 + -0x6c) = puVar33;\n    piVar31 = (int *)(puVar10 + -0x74);\n    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;\n  }\n  if (pEVar32 != (Elf32_Ehdr *)0x0) {\n    uVar17 = uVar17 & 1;\n    iVar11 = 0;\n    if (uVar17 == 0) goto LAB_00032354;\n    pEVar20 = pEVar32;\n    if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }\n  }\n  iVar11 = 0;\nLAB_00032354:\n  iVar16 = *(int *)(puVar10 + -0x2c);\n  if (iVar16 != *piVar14) {\n    pcVar39 = *(code **)(iVar13 + -0x7b70);\n    uVar25 = 0x32974;\n    (*pcVar39)();\n    pcVar36 = pcVar39 + 0x726c0;\n    pcVar9 = *(char **)(pcVar39 + 0x6a808);\n    *(int **)(puVar10 + -0xa0) = piVar14;\n    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;\n    *(code **)(puVar10 + -0xb0) = pcVar36;\n    *(undefined4 *)(puVar10 + -0x9c) = uVar25;\n    if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }\n    pEVar32 = pEVar20;\n    if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);\n    if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }\n    return iVar11;\n  }\n  return iVar11;\n}" (primitive_type "int") (function_declarator "FUN_000311c8(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,\n                Elf32_Ehdr *param_5,Elf32_Ehdr *param_6)" (identifier "FUN_000311c8") (parameter_list "(Elf32_Ehdr *param_1,undefined4 *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *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 "Elf32_Ehdr *param_4" (type_identifier "Elf32_Ehdr") (pointer_declarator "*param_4" (* "*") (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  int *piVar6;\n  byte *pbVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined1 *puVar10;\n  int iVar11;\n  byte *pbVar12;\n  int iVar13;\n  int *piVar14;\n  undefined4 uVar15;\n  int iVar16;\n  uint uVar17;\n  Elf32_Ehdr *pEVar18;\n  undefined4 uVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 *puVar21;\n  undefined4 uVar22;\n  undefined1 *puVar23;\n  undefined4 uVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *in_t1;\n  Elf32_Ehdr *pEVar27;\n  uint in_t2;\n  Elf32_Ehdr *in_t3;\n  Elf32_Ehdr *pEVar28;\n  Elf32_Ehdr *pEVar29;\n  Elf32_Ehdr *pEVar30;\n  int *piVar31;\n  Elf32_Ehdr *pEVar32;\n  uint *puVar33;\n  undefined *puVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  undefined1 *puVar37;\n  undefined1 *puVar38;\n  code *pcVar39;\n  code *pcVar40;\n  uint uVar41;\n  uint uVar42;\n  uint uVar43;\n  undefined8 uVar44;\n  undefined1 auStack_58 [24];\n  int *local_30;\n  int local_2c;\n  \n  pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;\n  puVar37 = auStack_58;\n  pEVar32 = (Elf32_Ehdr *)((int)param_3 * 4);\n  local_30 = (int *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (pEVar32 < (Elf32_Ehdr *)0x7f01) {\n    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);\n    puVar37 = auStack_58 + iVar11;\n    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }\n  uVar17 = (int)((int)param_3 + (1 - (int)param_5)) * 4;\n  if (uVar17 < 0x7f01) {\n    iVar11 = -(uVar17 + 7 & 0xfffffff8);\n    puVar3 = puVar37 + iVar11 + 0x18;\n    puVar37 = puVar37 + iVar11;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar25 = *param_2;\n    if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }\n  }\n  *(undefined1 **)(puVar37 + 0x14) = puVar3;\n  *(Elf32_Ehdr **)(puVar37 + 0x10) = param_6;\n  pEVar18 = param_3;\n  pEVar27 = param_5;\n  FUN_00030f30(pEVar28);\n  pEVar30 = param_5;\n  if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar18 = *(Elf32_Ehdr **)pEVar28;\n    pEVar5 = param_1;\n    pEVar29 = pEVar28;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 = pEVar18;\n  }\n  piVar14 = local_30;\n  if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if (local_2c == *(int *)pEVar20) {\n    return *(int *)pEVar20;\n  }\n  pcVar39 = __gmpz_powm_ui;\n  puVar34 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  puVar35 = puVar34 + 0x73c70;\n  puVar4 = *(undefined4 **)(puVar34 + 0x6c170);\n  puVar10 = puVar37 + -0xa8;\n  puVar3 = puVar37 + -0xa8;\n  puVar38 = puVar37 + -0xa8;\n  *(undefined1 **)(puVar37 + -8) = auStack_58;\n  *(undefined4 **)(puVar37 + -0x20) = param_2;\n  *(code **)(puVar37 + -4) = pcVar39;\n  *(undefined4 **)(puVar37 + -0x58) = puVar4;\n  *(Elf32_Ehdr **)(puVar37 + -0xc) = param_6;\n  *(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar37 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30;\n  *(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28;\n  *(Elf32_Ehdr **)(puVar37 + -0x28) = param_1;\n  *(undefined **)(puVar37 + -0x90) = puVar35;\n  *(int **)(puVar37 + -0x54) = piVar14;\n  *(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18;\n  *(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27;\n  *(undefined4 *)(puVar37 + -0x2c) = *puVar4;\n  pEVar29 = param_4;\n  if (param_4 < (Elf32_Ehdr *)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar32 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;\n    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);\n    uVar42 = uVar43;\n    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }\n    uVar42 = uVar17 << 0x10 | uVar42;\n    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);\n    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }\n    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar18 = (Elf32_Ehdr *)lVar2;\n    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n    uVar17 = uVar42;\n    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }\n    *(uint *)(puVar37 + -0x44) = uVar17;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);\n    pEVar30 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);\n    if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar17 = *(int *)(puVar37 + -0x50) + 4;\n    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);\n    *(uint *)(puVar37 + -0x70) = uVar17;\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }\n    uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n    pEVar18 = pEVar20;\n    FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);\n    puVar35 = *(undefined **)(puVar37 + -0x90);\n    pEVar30 = pEVar32;\n    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }\n    puVar4 = *(undefined4 **)(puVar37 + -100);\n    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);\n    pEVar18 = (Elf32_Ehdr *)*puVar4;\n    pEVar28 = param_6;\n    puVar10 = puVar23;\n    if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar28 = pEVar18;\n    param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);\n    iVar11 = 0x1f - (int)param_1;\n    param_3 = pEVar30;\n    if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }\nLAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);\n    piVar6 = *(int **)(puVar37 + -0x58);\n    if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }\n  else {\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }\n  if (*(int *)(puVar37 + -0x2c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(puVar35 + -0x7b70);\n  uVar25 = 0x3206c;\n  (*pcVar39)();\n  pcVar36 = pcVar39 + 0x72fd0;\n  puVar10 = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29;\n  piVar6 = *(int **)(pcVar39 + 0x6b4d0);\n  *(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8;\n  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28;\n  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;\n  *(undefined4 *)(puVar3 + -4) = uVar25;\n  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar30;\n  *(code **)(puVar3 + -0x28) = pcVar36;\n  *(int *)(puVar3 + -0x1c) = *piVar6;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar18) {\n    if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);\n    pcVar36 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);\n    uVar17 = 8;\n    do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);\n    if (uVar42 == 0) {\n      trap(7);\n    }\n    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    iVar13 = 0;\n    uVar43 = 1;\n    iVar11 = 0;\n    uVar17 = 0;\n    uVar42 = 6;\n    do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);\n    if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    piVar31 = *(int **)(puVar3 + -0x20);\n    if (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }\n  if (*(int *)(puVar3 + -0x1c) == *piVar6) {\n    return *piVar6;\n  }\n  pcVar39 = *(code **)(pcVar36 + -0x7b70);\n  pcVar40 = __gmpz_probab_prime_p;\n  (*pcVar39)();\n  pcVar36 = *(code **)(pcVar39 + 0x6ae78);\n  *(int **)(puVar10 + -0x24) = piVar14;\n  *(int **)(puVar10 + -0x20) = piVar6;\n  piVar14 = *(int **)(pcVar39 + 0x6b270);\n  *(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20;\n  *(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30;\n  pEVar20 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70;\n  *(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32;\n  *(Elf32_Ehdr **)(puVar10 + -0x14) = param_3;\n  *(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18;\n  *(code **)(puVar10 + -4) = pcVar40;\n  *(undefined1 **)(puVar10 + -8) = puVar3 + -0x38;\n  *(Elf32_Ehdr **)(puVar10 + -0xc) = param_6;\n  *(int *)(puVar10 + -0x2c) = *piVar14;\n  iVar11 = (*pcVar36)();\n  puVar33 = (uint *)piVar31[2];\n  iVar13 = *(int *)(puVar10 + -0x88);\n  pEVar32 = (Elf32_Ehdr *)piVar31[1];\n  uVar17 = *puVar33;\n  if (iVar11 < 1) {\n    pEVar20 = (Elf32_Ehdr *)0xf4240;\n    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);\n    iVar13 = *(int *)(puVar10 + -0x88);\n    if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;\n    *(uint **)(puVar10 + -0x6c) = puVar33;\n    piVar31 = (int *)(puVar10 + -0x74);\n    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;\n  }\n  if (pEVar32 != (Elf32_Ehdr *)0x0) {\n    uVar17 = uVar17 & 1;\n    iVar11 = 0;\n    if (uVar17 == 0) goto LAB_00032354;\n    pEVar20 = pEVar32;\n    if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }\n  }\n  iVar11 = 0;\nLAB_00032354:\n  iVar16 = *(int *)(puVar10 + -0x2c);\n  if (iVar16 != *piVar14) {\n    pcVar39 = *(code **)(iVar13 + -0x7b70);\n    uVar25 = 0x32974;\n    (*pcVar39)();\n    pcVar36 = pcVar39 + 0x726c0;\n    pcVar9 = *(char **)(pcVar39 + 0x6a808);\n    *(int **)(puVar10 + -0xa0) = piVar14;\n    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;\n    *(code **)(puVar10 + -0xb0) = pcVar36;\n    *(undefined4 *)(puVar10 + -0x9c) = uVar25;\n    if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }\n    pEVar32 = pEVar20;\n    if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);\n    if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }\n    return iVar11;\n  }\n  return iVar11;\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 "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "undefined1 *puVar10;" (type_identifier "undefined1") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "Elf32_Ehdr *pEVar18;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar18" (* "*") (identifier "pEVar18")) (; ";")) (declaration "undefined4 uVar19;" (type_identifier "undefined4") (identifier "uVar19") (; ";")) (declaration "Elf32_Ehdr *pEVar20;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar20" (* "*") (identifier "pEVar20")) (; ";")) (declaration "undefined4 *puVar21;" (type_identifier "undefined4") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "undefined4 uVar22;" (type_identifier "undefined4") (identifier "uVar22") (; ";")) (declaration "undefined1 *puVar23;" (type_identifier "undefined1") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "undefined4 uVar24;" (type_identifier "undefined4") (identifier "uVar24") (; ";")) (declaration "undefined4 uVar25;" (type_identifier "undefined4") (identifier "uVar25") (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "Elf32_Ehdr *in_t1;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*in_t1" (* "*") (identifier "in_t1")) (; ";")) (declaration "Elf32_Ehdr *pEVar27;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar27" (* "*") (identifier "pEVar27")) (; ";")) (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 "Elf32_Ehdr *pEVar28;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar28" (* "*") (identifier "pEVar28")) (; ";")) (declaration "Elf32_Ehdr *pEVar29;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar29" (* "*") (identifier "pEVar29")) (; ";")) (declaration "Elf32_Ehdr *pEVar30;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar30" (* "*") (identifier "pEVar30")) (; ";")) (declaration "int *piVar31;" (primitive_type "int") (pointer_declarator "*piVar31" (* "*") (identifier "piVar31")) (; ";")) (declaration "Elf32_Ehdr *pEVar32;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar32" (* "*") (identifier "pEVar32")) (; ";")) (declaration "uint *puVar33;" (type_identifier "uint") (pointer_declarator "*puVar33" (* "*") (identifier "puVar33")) (; ";")) (declaration "undefined *puVar34;" (type_identifier "undefined") (pointer_declarator "*puVar34" (* "*") (identifier "puVar34")) (; ";")) (declaration "undefined *puVar35;" (type_identifier "undefined") (pointer_declarator "*puVar35" (* "*") (identifier "puVar35")) (; ";")) (declaration "code *pcVar36;" (type_identifier "code") (pointer_declarator "*pcVar36" (* "*") (identifier "pcVar36")) (; ";")) (declaration "undefined1 *puVar37;" (type_identifier "undefined1") (pointer_declarator "*puVar37" (* "*") (identifier "puVar37")) (; ";")) (declaration "undefined1 *puVar38;" (type_identifier "undefined1") (pointer_declarator "*puVar38" (* "*") (identifier "puVar38")) (; ";")) (declaration "code *pcVar39;" (type_identifier "code") (pointer_declarator "*pcVar39" (* "*") (identifier "pcVar39")) (; ";")) (declaration "code *pcVar40;" (type_identifier "code") (pointer_declarator "*pcVar40" (* "*") (identifier "pcVar40")) (; ";")) (declaration "uint uVar41;" (type_identifier "uint") (identifier "uVar41") (; ";")) (declaration "uint uVar42;" (type_identifier "uint") (identifier "uVar42") (; ";")) (declaration "uint uVar43;" (type_identifier "uint") (identifier "uVar43") (; ";")) (declaration "undefined8 uVar44;" (type_identifier "undefined8") (identifier "uVar44") (; ";")) (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 "pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)PTR___stack_chk_guard_0009d540" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0009d540"))) (; ";")) (expression_statement "puVar37 = auStack_58;" (assignment_expression "puVar37 = auStack_58" (identifier "puVar37") (= "=") (identifier "auStack_58")) (; ";")) (expression_statement "pEVar32 = (Elf32_Ehdr *)((int)param_3 * 4);" (assignment_expression "pEVar32 = (Elf32_Ehdr *)((int)param_3 * 4)" (identifier "pEVar32") (= "=") (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_0009d540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0009d540" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0009d540" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0009d540")))) (; ";")) (if_statement "if (pEVar32 < (Elf32_Ehdr *)0x7f01) {\n    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);\n    puVar37 = auStack_58 + iVar11;\n    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);\n  }\n  else {\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }" (if "if") (parenthesized_expression "(pEVar32 < (Elf32_Ehdr *)0x7f01)" (( "(") (binary_expression "pEVar32 < (Elf32_Ehdr *)0x7f01" (identifier "pEVar32") (< "<") (cast_expression "(Elf32_Ehdr *)0x7f01" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7f01"))) () ")")) (compound_statement "{\n    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);\n    puVar37 = auStack_58 + iVar11;\n    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);\n  }" ({ "{") (expression_statement "iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);" (assignment_expression "iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8)" (identifier "iVar11") (= "=") (unary_expression "-((uint)&pEVar32->e_ident_osabi & 0xfffffff8)" (- "-") (parenthesized_expression "((uint)&pEVar32->e_ident_osabi & 0xfffffff8)" (( "(") (binary_expression "(uint)&pEVar32->e_ident_osabi & 0xfffffff8" (binary_expression "(uint)&pEVar32->e_ident_osabi" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (& "&") (field_expression "pEVar32->e_ident_osabi" (identifier "pEVar32") (-> "->") (field_identifier "e_ident_osabi"))) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar37 = auStack_58 + iVar11;" (assignment_expression "puVar37 = auStack_58 + iVar11" (identifier "puVar37") (= "=") (binary_expression "auStack_58 + iVar11" (identifier "auStack_58") (+ "+") (identifier "iVar11"))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)(&stack0xffffffc0 + iVar11)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&stack0xffffffc0 + iVar11)" (( "(") (binary_expression "&stack0xffffffc0 + iVar11" (pointer_expression "&stack0xffffffc0" (& "&") (identifier "stack0xffffffc0")) (+ "+") (identifier "iVar11")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }" (else "else") (compound_statement "{\n    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);\n  }" ({ "{") (expression_statement "pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_0009d2f0"))) () ")")) (argument_list "(&local_30,pEVar32)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (identifier "pEVar32") () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar17 = (int)((int)param_3 + (1 - (int)param_5)) * 4;" (assignment_expression "uVar17 = (int)((int)param_3 + (1 - (int)param_5)) * 4" (identifier "uVar17") (= "=") (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 (uVar17 < 0x7f01) {\n    iVar11 = -(uVar17 + 7 & 0xfffffff8);\n    puVar3 = puVar37 + iVar11 + 0x18;\n    puVar37 = puVar37 + iVar11;\n  }\n  else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" (if "if") (parenthesized_expression "(uVar17 < 0x7f01)" (( "(") (binary_expression "uVar17 < 0x7f01" (identifier "uVar17") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n    iVar11 = -(uVar17 + 7 & 0xfffffff8);\n    puVar3 = puVar37 + iVar11 + 0x18;\n    puVar37 = puVar37 + iVar11;\n  }" ({ "{") (expression_statement "iVar11 = -(uVar17 + 7 & 0xfffffff8);" (assignment_expression "iVar11 = -(uVar17 + 7 & 0xfffffff8)" (identifier "iVar11") (= "=") (unary_expression "-(uVar17 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar17 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar17 + 7 & 0xfffffff8" (binary_expression "uVar17 + 7" (identifier "uVar17") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar3 = puVar37 + iVar11 + 0x18;" (assignment_expression "puVar3 = puVar37 + iVar11 + 0x18" (identifier "puVar3") (= "=") (binary_expression "puVar37 + iVar11 + 0x18" (binary_expression "puVar37 + iVar11" (identifier "puVar37") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "puVar37 = puVar37 + iVar11;" (assignment_expression "puVar37 = puVar37 + iVar11" (identifier "puVar37") (= "=") (binary_expression "puVar37 + iVar11" (identifier "puVar37") (+ "+") (identifier "iVar11"))) (; ";")) (} "}")) (else_clause "else {\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" (else "else") (compound_statement "{\n    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" ({ "{") (expression_statement "puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (identifier "puVar3") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_0009d2f0"))) () ")")) (argument_list "(&local_30)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (param_3 != (Elf32_Ehdr *)0x0) {\n    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar25 = *param_2;\n    if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\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    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n    uVar25 = *param_2;\n    if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }\n  }" ({ "{") (expression_statement "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" (identifier "puVar10") (= "=") (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 "uVar25 = *param_2;" (assignment_expression "uVar25 = *param_2" (identifier "uVar25") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (puVar10 == (undefined1 *)0x0) {\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }\n    else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }" (if "if") (parenthesized_expression "(puVar10 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar10 == (undefined1 *)0x0" (identifier "puVar10") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar28->e_ident_magic_str[2] = (char)uVar25;\n      pEVar32 = pEVar28;\n    }" ({ "{") (expression_statement "pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar28->e_ident_magic_num" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar25 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar25 >> 0x18)" (( "(") (binary_expression "(uint)uVar25 >> 0x18" (cast_expression "(uint)uVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar25")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 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)uVar25 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar25 >> 0x10)" (( "(") (binary_expression "(uint)uVar25 >> 0x10" (cast_expression "(uint)uVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar25")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 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)uVar25 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar25 >> 8)" (( "(") (binary_expression "(uint)uVar25 >> 8" (cast_expression "(uint)uVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar25")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar28->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar28->e_ident_magic_str[2] = (char)uVar25" (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)uVar25" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar25"))) (; ";")) (expression_statement "pEVar32 = pEVar28;" (assignment_expression "pEVar32 = pEVar28" (identifier "pEVar32") (= "=") (identifier "pEVar28")) (; ";")) (} "}")) (else_clause "else {\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }" (else "else") (compound_statement "{\n      pEVar30 = pEVar28;\n      puVar4 = param_2 + 1;\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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );\n      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n      pEVar32->e_ident_magic_str[2] = (char)uVar25;\n    }" ({ "{") (expression_statement "pEVar30 = pEVar28;" (assignment_expression "pEVar30 = pEVar28" (identifier "pEVar30") (= "=") (identifier "pEVar28")) (; ";")) (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        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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\n      } while (puVar10 != (undefined1 *)0x0);" (do "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        puVar10 = puVar10 + -1;\n        uVar25 = *puVar4;\n        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        puVar4 = puVar4 + 1;\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 "pEVar30") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar25 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar25 >> 0x18)" (( "(") (binary_expression "(uint)uVar25 >> 0x18" (cast_expression "(uint)uVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar25")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (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 "pEVar30") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar25 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar25 >> 0x10)" (( "(") (binary_expression "(uint)uVar25 >> 0x10" (cast_expression "(uint)uVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar25")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (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 "pEVar30") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar25 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar25 >> 8)" (( "(") (binary_expression "(uint)uVar25 >> 8" (cast_expression "(uint)uVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar25")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (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 "pEVar30") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar25" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar25"))) (; ";")) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + -1" (identifier "puVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar25 = *puVar4;" (assignment_expression "uVar25 = *puVar4" (identifier "uVar25") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class" (identifier "pEVar30") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar30->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar30->e_ident_class" (& "&") (field_expression "pEVar30->e_ident_class" (identifier "pEVar30") (-> "->") (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 "(puVar10 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar10 != (undefined1 *)0x0" (identifier "puVar10") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                );" (assignment_expression "pEVar32 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                )" (identifier "pEVar32") (= "=") (cast_expression "(Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                )" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str\n                )" (( "(") (binary_expression "(undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str" (cast_expression "(undefined1 *)((int)&pEVar32[-1].e_shentsize + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar32[-1].e_shentsize + 1)" (( "(") (binary_expression "(int)&pEVar32[-1].e_shentsize + 1" (cast_expression "(int)&pEVar32[-1].e_shentsize" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar32[-1].e_shentsize" (& "&") (field_expression "pEVar32[-1].e_shentsize" (subscript_expression "pEVar32[-1]" (identifier "pEVar32") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shentsize")))) (+ "+") (number_literal "1")) () ")"))) (+ "+") (cast_expression "(int)pEVar28->e_ident_magic_str" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")))) () ")")))) (; ";")) (expression_statement "pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar32->e_ident_magic_num" (identifier "pEVar32") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar25 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar25 >> 0x18)" (( "(") (binary_expression "(uint)uVar25 >> 0x18" (cast_expression "(uint)uVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar25")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 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)uVar25 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar25 >> 0x10)" (( "(") (binary_expression "(uint)uVar25 >> 0x10" (cast_expression "(uint)uVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar25")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 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)uVar25 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar25 >> 8)" (( "(") (binary_expression "(uint)uVar25 >> 8" (cast_expression "(uint)uVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar25")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar32->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar32->e_ident_magic_str[2] = (char)uVar25" (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)uVar25" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar25"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "*(undefined1 **)(puVar37 + 0x14) = puVar3;" (assignment_expression "*(undefined1 **)(puVar37 + 0x14) = puVar3" (pointer_expression "*(undefined1 **)(puVar37 + 0x14)" (* "*") (cast_expression "(undefined1 **)(puVar37 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x14)" (( "(") (binary_expression "puVar37 + 0x14" (identifier "puVar37") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar37 + 0x10) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + 0x10) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + 0x10)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + 0x10)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x10)" (( "(") (binary_expression "puVar37 + 0x10" (identifier "puVar37") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "pEVar18 = param_3;" (assignment_expression "pEVar18 = param_3" (identifier "pEVar18") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pEVar27 = param_5;" (assignment_expression "pEVar27 = param_5" (identifier "pEVar27") (= "=") (identifier "param_5")) (; ";")) (expression_statement "FUN_00030f30(pEVar28);" (call_expression "FUN_00030f30(pEVar28)" (identifier "FUN_00030f30") (argument_list "(pEVar28)" (( "(") (identifier "pEVar28") () ")"))) (; ";")) (expression_statement "pEVar30 = param_5;" (assignment_expression "pEVar30 = param_5" (identifier "pEVar30") (= "=") (identifier "param_5")) (; ";")) (if_statement "if (param_5 != (Elf32_Ehdr *)0x0) {\n    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);\n    pEVar18 = *(Elf32_Ehdr **)pEVar28;\n    pEVar5 = param_1;\n    pEVar29 = pEVar28;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 = pEVar18;\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    pEVar18 = *(Elf32_Ehdr **)pEVar28;\n    pEVar5 = param_1;\n    pEVar29 = pEVar28;\n    if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 = pEVar18;\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 "pEVar18 = *(Elf32_Ehdr **)pEVar28;" (assignment_expression "pEVar18 = *(Elf32_Ehdr **)pEVar28" (identifier "pEVar18") (= "=") (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")))) (; ";")) (expression_statement "pEVar5 = param_1;" (assignment_expression "pEVar5 = param_1" (identifier "pEVar5") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pEVar29 = pEVar28;" (assignment_expression "pEVar29 = pEVar28" (identifier "pEVar29") (= "=") (identifier "pEVar28")) (; ";")) (if_statement "if (puVar3 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);\n      pEVar30 = (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 **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      } while (puVar3 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n        *(Elf32_Ehdr **)pEVar5 = pEVar18;\n        puVar3 = puVar3 + -1;\n        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;\n        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;\n      }" ({ "{") (expression_statement "*(Elf32_Ehdr **)pEVar5 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)pEVar5 = pEVar18" (pointer_expression "*(Elf32_Ehdr **)pEVar5" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar5" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar5"))) (= "=") (identifier "pEVar18")) (; ";")) (expression_statement "puVar3 = puVar3 + -1;" (assignment_expression "puVar3 = puVar3 + -1" (identifier "puVar3") (= "=") (binary_expression "puVar3 + -1" (identifier "puVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;" (assignment_expression "pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class" (identifier "pEVar18") (= "=") (pointer_expression "*(Elf32_Ehdr **)&pEVar29->e_ident_class" (* "*") (cast_expression "(Elf32_Ehdr **)&pEVar29->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&pEVar29->e_ident_class" (& "&") (field_expression "pEVar29->e_ident_class" (identifier "pEVar29") (-> "->") (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"))))) (; ";")) (expression_statement "pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;" (assignment_expression "pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class" (identifier "pEVar29") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar29->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar29->e_ident_class" (& "&") (field_expression "pEVar29->e_ident_class" (identifier "pEVar29") (-> "->") (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 "pEVar30 = (Elf32_Ehdr *)((int)param_5 * 4 + -4);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)((int)param_5 * 4 + -4)" (identifier "pEVar30") (= "=") (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 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)param_1 = pEVar18" (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 "pEVar18")) (; ";")) (} "}"))) (expression_statement "piVar14 = local_30;" (assignment_expression "piVar14 = local_30" (identifier "piVar14") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (local_30 != (int *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\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_0009d618)();\n  }" ({ "{") (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_free_0009d618"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_2c == *(int *)pEVar20) {\n    return *(int *)pEVar20;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)pEVar20)" (( "(") (binary_expression "local_2c == *(int *)pEVar20" (identifier "local_2c") (== "==") (pointer_expression "*(int *)pEVar20" (* "*") (cast_expression "(int *)pEVar20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar20")))) () ")")) (compound_statement "{\n    return *(int *)pEVar20;\n  }" ({ "{") (return_statement "return *(int *)pEVar20;" (return "return") (pointer_expression "*(int *)pEVar20" (* "*") (cast_expression "(int *)pEVar20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar20"))) (; ";")) (} "}"))) (expression_statement "pcVar39 = __gmpz_powm_ui;" (assignment_expression "pcVar39 = __gmpz_powm_ui" (identifier "pcVar39") (= "=") (identifier "__gmpz_powm_ui")) (; ";")) (expression_statement "puVar34 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar34 = PTR___stack_chk_fail_0009d4d0" (identifier "puVar34") (= "=") (identifier "PTR___stack_chk_fail_0009d4d0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0009d4d0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar35 = puVar34 + 0x73c70;" (assignment_expression "puVar35 = puVar34 + 0x73c70" (identifier "puVar35") (= "=") (binary_expression "puVar34 + 0x73c70" (identifier "puVar34") (+ "+") (number_literal "0x73c70"))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)(puVar34 + 0x6c170);" (assignment_expression "puVar4 = *(undefined4 **)(puVar34 + 0x6c170)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(puVar34 + 0x6c170)" (* "*") (cast_expression "(undefined4 **)(puVar34 + 0x6c170)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar34 + 0x6c170)" (( "(") (binary_expression "puVar34 + 0x6c170" (identifier "puVar34") (+ "+") (number_literal "0x6c170")) () ")"))))) (; ";")) (expression_statement "puVar10 = puVar37 + -0xa8;" (assignment_expression "puVar10 = puVar37 + -0xa8" (identifier "puVar10") (= "=") (binary_expression "puVar37 + -0xa8" (identifier "puVar37") (+ "+") (number_literal "-0xa8"))) (; ";")) (expression_statement "puVar3 = puVar37 + -0xa8;" (assignment_expression "puVar3 = puVar37 + -0xa8" (identifier "puVar3") (= "=") (binary_expression "puVar37 + -0xa8" (identifier "puVar37") (+ "+") (number_literal "-0xa8"))) (; ";")) (expression_statement "puVar38 = puVar37 + -0xa8;" (assignment_expression "puVar38 = puVar37 + -0xa8" (identifier "puVar38") (= "=") (binary_expression "puVar37 + -0xa8" (identifier "puVar37") (+ "+") (number_literal "-0xa8"))) (; ";")) (expression_statement "*(undefined1 **)(puVar37 + -8) = auStack_58;" (assignment_expression "*(undefined1 **)(puVar37 + -8) = auStack_58" (pointer_expression "*(undefined1 **)(puVar37 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar37 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -8)" (( "(") (binary_expression "puVar37 + -8" (identifier "puVar37") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "auStack_58")) (; ";")) (expression_statement "*(undefined4 **)(puVar37 + -0x20) = param_2;" (assignment_expression "*(undefined4 **)(puVar37 + -0x20) = param_2" (pointer_expression "*(undefined4 **)(puVar37 + -0x20)" (* "*") (cast_expression "(undefined4 **)(puVar37 + -0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x20)" (( "(") (binary_expression "puVar37 + -0x20" (identifier "puVar37") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(code **)(puVar37 + -4) = pcVar39;" (assignment_expression "*(code **)(puVar37 + -4) = pcVar39" (pointer_expression "*(code **)(puVar37 + -4)" (* "*") (cast_expression "(code **)(puVar37 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -4)" (( "(") (binary_expression "puVar37 + -4" (identifier "puVar37") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar39")) (; ";")) (expression_statement "*(undefined4 **)(puVar37 + -0x58) = puVar4;" (assignment_expression "*(undefined4 **)(puVar37 + -0x58) = puVar4" (pointer_expression "*(undefined4 **)(puVar37 + -0x58)" (* "*") (cast_expression "(undefined4 **)(puVar37 + -0x58)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x58)" (( "(") (binary_expression "puVar37 + -0x58" (identifier "puVar37") (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0xc) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0xc) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0xc)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0xc)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0xc)" (( "(") (binary_expression "puVar37 + -0xc" (identifier "puVar37") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x10)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x10)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x10)" (( "(") (binary_expression "puVar37 + -0x10" (identifier "puVar37") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pEVar32")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x14) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x14) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x14)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x14)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x14)" (( "(") (binary_expression "puVar37 + -0x14" (identifier "puVar37") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x18)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x18)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x18)" (( "(") (binary_expression "puVar37 + -0x18" (identifier "puVar37") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x1c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x1c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x1c)" (( "(") (binary_expression "puVar37 + -0x1c" (identifier "puVar37") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "pEVar30")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x24)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x24)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x24)" (( "(") (binary_expression "puVar37 + -0x24" (identifier "puVar37") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x28) = param_1;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x28) = param_1" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x28)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x28)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x28)" (( "(") (binary_expression "puVar37 + -0x28" (identifier "puVar37") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined **)(puVar37 + -0x90) = puVar35;" (assignment_expression "*(undefined **)(puVar37 + -0x90) = puVar35" (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")")))) (= "=") (identifier "puVar35")) (; ";")) (expression_statement "*(int **)(puVar37 + -0x54) = piVar14;" (assignment_expression "*(int **)(puVar37 + -0x54) = piVar14" (pointer_expression "*(int **)(puVar37 + -0x54)" (* "*") (cast_expression "(int **)(puVar37 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")")))) (= "=") (identifier "piVar14")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x5c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x5c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x5c)" (( "(") (binary_expression "puVar37 + -0x5c" (identifier "puVar37") (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (identifier "pEVar18")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x68)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x68)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x68)" (( "(") (binary_expression "puVar37 + -0x68" (identifier "puVar37") (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "pEVar27")) (; ";")) (expression_statement "*(undefined4 *)(puVar37 + -0x2c) = *puVar4;" (assignment_expression "*(undefined4 *)(puVar37 + -0x2c) = *puVar4" (pointer_expression "*(undefined4 *)(puVar37 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x2c)" (( "(") (binary_expression "puVar37 + -0x2c" (identifier "puVar37") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "pEVar29 = param_4;" (assignment_expression "pEVar29 = param_4" (identifier "pEVar29") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (param_4 < (Elf32_Ehdr *)0x14) {\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar32 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;\n    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);\n    uVar42 = uVar43;\n    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }\n    uVar42 = uVar17 << 0x10 | uVar42;\n    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);\n    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }\n    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar18 = (Elf32_Ehdr *)lVar2;\n    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n    uVar17 = uVar42;\n    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }\n    *(uint *)(puVar37 + -0x44) = uVar17;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);\n    pEVar30 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);\n    if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar17 = *(int *)(puVar37 + -0x50) + 4;\n    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);\n    *(uint *)(puVar37 + -0x70) = uVar17;\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }\n    uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n    pEVar18 = pEVar20;\n    FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);\n    puVar35 = *(undefined **)(puVar37 + -0x90);\n    pEVar30 = pEVar32;\n    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }\n    puVar4 = *(undefined4 **)(puVar37 + -100);\n    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);\n    pEVar18 = (Elf32_Ehdr *)*puVar4;\n    pEVar28 = param_6;\n    puVar10 = puVar23;\n    if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar28 = pEVar18;\n    param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);\n    iVar11 = 0x1f - (int)param_1;\n    param_3 = pEVar30;\n    if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }\nLAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);\n    piVar6 = *(int **)(puVar37 + -0x58);\n    if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }\n  else {\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }" (if "if") (parenthesized_expression "(param_4 < (Elf32_Ehdr *)0x14)" (( "(") (binary_expression "param_4 < (Elf32_Ehdr *)0x14" (identifier "param_4") (< "<") (cast_expression "(Elf32_Ehdr *)0x14" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x14"))) () ")")) (compound_statement "{\n    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;\n    pEVar32 = pEVar5;\n    if ((int)pEVar5 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }\n    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;\n    if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }\n    if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;\n    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);\n    uVar42 = uVar43;\n    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }\n    uVar42 = uVar17 << 0x10 | uVar42;\n    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);\n    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }\n    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar18 = (Elf32_Ehdr *)lVar2;\n    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n    uVar17 = uVar42;\n    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }\n    *(uint *)(puVar37 + -0x44) = uVar17;\n    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);\n    pEVar30 = pEVar27;\n    if ((int)pEVar27 < 0) {\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }\n    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);\n    if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }\n    uVar17 = *(int *)(puVar37 + -0x50) + 4;\n    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);\n    *(uint *)(puVar37 + -0x70) = uVar17;\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }\n    uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;\n    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;\n    pEVar18 = pEVar20;\n    FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);\n    puVar35 = *(undefined **)(puVar37 + -0x90);\n    pEVar30 = pEVar32;\n    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }\nLAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }\n    puVar4 = *(undefined4 **)(puVar37 + -100);\n    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);\n    pEVar18 = (Elf32_Ehdr *)*puVar4;\n    pEVar28 = param_6;\n    puVar10 = puVar23;\n    if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar28 = pEVar18;\n    param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);\n    iVar11 = 0x1f - (int)param_1;\n    param_3 = pEVar30;\n    if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }\nLAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;\n    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);\n    piVar6 = *(int **)(puVar37 + -0x58);\n    if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }\n  }" ({ "{") (expression_statement "pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;" (assignment_expression "pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class" (identifier "pEVar5") (= "=") (pointer_expression "*(Elf32_Ehdr **)&pEVar27->e_ident_class" (* "*") (cast_expression "(Elf32_Ehdr **)&pEVar27->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&pEVar27->e_ident_class" (& "&") (field_expression "pEVar27->e_ident_class" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_class")))))) (; ";")) (expression_statement "*(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;" (assignment_expression "*(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion" (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x4c)" (( "(") (binary_expression "puVar37 + -0x4c" (identifier "puVar37") (+ "+") (number_literal "-0x4c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)&pEVar27->e_ident_abiversion" (* "*") (cast_expression "(undefined4 *)&pEVar27->e_ident_abiversion" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar27->e_ident_abiversion" (& "&") (field_expression "pEVar27->e_ident_abiversion" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_abiversion")))))) (; ";")) (expression_statement "pEVar32 = pEVar5;" (assignment_expression "pEVar32 = pEVar5" (identifier "pEVar32") (= "=") (identifier "pEVar5")) (; ";")) (if_statement "if ((int)pEVar5 < 0) {\n      pEVar32 = (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      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;\n    }" ({ "{") (expression_statement "pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)-(int)pEVar5" (identifier "pEVar32") (= "=") (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 **)(puVar37 + -0x78) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x78)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x78)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x78)" (( "(") (binary_expression "puVar37 + -0x78" (identifier "puVar37") (+ "+") (number_literal "-0x78")) () ")")))) (= "=") (identifier "pEVar32")) (; ";")) (if_statement "if (pEVar5 == (Elf32_Ehdr *)0x0) {\n      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\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      pEVar20 = param_4;\n      uVar44 = (**(code **)(puVar34 + 0x6c210))();\nLAB_00031d4c:\n      uVar17 = (uint)uVar44;\n      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);\n      puVar3 = puVar10;\n    }" ({ "{") (expression_statement "pEVar20 = param_4;" (assignment_expression "pEVar20 = param_4" (identifier "pEVar20") (= "=") (identifier "param_4")) (; ";")) (expression_statement "uVar44 = (**(code **)(puVar34 + 0x6c210))();" (assignment_expression "uVar44 = (**(code **)(puVar34 + 0x6c210))()" (identifier "uVar44") (= "=") (call_expression "(**(code **)(puVar34 + 0x6c210))()" (parenthesized_expression "(**(code **)(puVar34 + 0x6c210))" (( "(") (pointer_expression "**(code **)(puVar34 + 0x6c210)" (* "*") (pointer_expression "*(code **)(puVar34 + 0x6c210)" (* "*") (cast_expression "(code **)(puVar34 + 0x6c210)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar34 + 0x6c210)" (( "(") (binary_expression "puVar34 + 0x6c210" (identifier "puVar34") (+ "+") (number_literal "0x6c210")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (labeled_statement "LAB_00031d4c:\n      uVar17 = (uint)uVar44;" (statement_identifier "LAB_00031d4c") (: ":") (expression_statement "uVar17 = (uint)uVar44;" (assignment_expression "uVar17 = (uint)uVar44" (identifier "uVar17") (= "=") (cast_expression "(uint)uVar44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar44"))) (; ";"))) (expression_statement "pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1)" (identifier "pEVar30") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1)" (( "(") (binary_expression "pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1" (binary_expression "pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20)" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar44")) (>> ">>") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "puVar3 = puVar10;" (assignment_expression "puVar3 = puVar10" (identifier "puVar3") (= "=") (identifier "puVar10")) (; ";")) (} "}")) (else_clause "else {\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }" (else "else") (compound_statement "{\n      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);\n      if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }\n      *(undefined4 *)(puVar37 + -0x40) = 0;\n      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;\n      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);\n      if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }\n      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);\n      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];\n      *(int *)(puVar37 + -0x6c) = iVar11;\n      puVar10 = puVar37 + -0xa8;\n      if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }\n      if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }\n      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);\n      if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;\n      in_t2 = (uint)pEVar20 & 0xffff;\n      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);\n      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);\n      uVar17 = uVar42;\n      in_t1 = pEVar27;\n      puVar3 = puVar10;\n      if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }\n    }" ({ "{") (expression_statement "pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar32 * 4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar32 * 4)" (( "(") (binary_expression "(int)pEVar32 * 4" (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32")) (* "*") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (param_4 == (Elf32_Ehdr *)0x0) {\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }" (if "if") (parenthesized_expression "(param_4 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "param_4 == (Elf32_Ehdr *)0x0" (identifier "param_4") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar17 = 1;\n        if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }\n        piVar14 = *(int **)(puVar37 + -0x54);\n        piVar14[1] = uVar17;\n        *(undefined4 *)piVar14[2] = 1;\n        puVar3 = puVar37 + -0xa8;\n        goto LAB_00031764;\n      }" ({ "{") (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" (identifier "uVar17") (= "=") (number_literal "1")) (; ";")) (if_statement "if (pEVar32 == (Elf32_Ehdr *)0x1) {\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }" (if "if") (parenthesized_expression "(pEVar32 == (Elf32_Ehdr *)0x1)" (( "(") (binary_expression "pEVar32 == (Elf32_Ehdr *)0x1" (identifier "pEVar32") (== "==") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);\n        }" ({ "{") (expression_statement "uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);" (assignment_expression "uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1)" (identifier "uVar17") (= "=") (call_expression "(uint)(**(int **)(puVar37 + -0x4c) != 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(**(int **)(puVar37 + -0x4c) != 1)" (( "(") (binary_expression "**(int **)(puVar37 + -0x4c) != 1" (pointer_expression "**(int **)(puVar37 + -0x4c)" (* "*") (pointer_expression "*(int **)(puVar37 + -0x4c)" (* "*") (cast_expression "(int **)(puVar37 + -0x4c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x4c)" (( "(") (binary_expression "puVar37 + -0x4c" (identifier "puVar37") (+ "+") (number_literal "-0x4c")) () ")"))))) (!= "!=") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "piVar14 = *(int **)(puVar37 + -0x54);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(puVar37 + -0x54)" (* "*") (cast_expression "(int **)(puVar37 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (expression_statement "piVar14[1] = uVar17;" (assignment_expression "piVar14[1] = uVar17" (subscript_expression "piVar14[1]" (identifier "piVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "*(undefined4 *)piVar14[2] = 1;" (assignment_expression "*(undefined4 *)piVar14[2] = 1" (pointer_expression "*(undefined4 *)piVar14[2]" (* "*") (cast_expression "(undefined4 *)piVar14[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar14[2]" (identifier "piVar14") ([ "[") (number_literal "2") (] "]")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar3 = puVar37 + -0xa8;" (assignment_expression "puVar3 = puVar37 + -0xa8" (identifier "puVar3") (= "=") (binary_expression "puVar37 + -0xa8" (identifier "puVar37") (+ "+") (number_literal "-0xa8"))) (; ";")) (goto_statement "goto LAB_00031764;" (goto "goto") (statement_identifier "LAB_00031764") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar37 + -0x40) = 0;" (assignment_expression "*(undefined4 *)(puVar37 + -0x40) = 0" (pointer_expression "*(undefined4 *)(puVar37 + -0x40)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x40)" (( "(") (binary_expression "puVar37 + -0x40" (identifier "puVar37") (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;" (assignment_expression "*(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum" (pointer_expression "*(word **)(puVar37 + -0x50)" (* "*") (cast_expression "(word **)(puVar37 + -0x50)" (( "(") (type_descriptor "word **" (type_identifier "word") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")")))) (= "=") (pointer_expression "&pEVar28[-1].e_shnum" (& "&") (field_expression "pEVar28[-1].e_shnum" (subscript_expression "pEVar28[-1]" (identifier "pEVar28") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shnum")))) (; ";")) (expression_statement "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum)" (identifier "pEVar20") (= "=") (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum)" (( "(") (binary_expression "*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum" (pointer_expression "*(int *)(puVar37 + -0x4c)" (* "*") (cast_expression "(int *)(puVar37 + -0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x4c)" (( "(") (binary_expression "puVar37 + -0x4c" (identifier "puVar37") (+ "+") (number_literal "-0x4c")) () ")")))) (+ "+") (cast_expression "(int)&pEVar28[-1].e_shnum" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar28[-1].e_shnum" (& "&") (field_expression "pEVar28[-1].e_shnum" (subscript_expression "pEVar28[-1]" (identifier "pEVar28") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shnum"))))) () ")"))))) (; ";")) (if_statement "if (pEVar20 < &Elf32_Ehdr_00010000) {\n        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }\n      else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 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        iVar11 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 0x18;\n        }\n        iVar13 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 1;\n        }\n      }" ({ "{") (expression_statement "iVar11 = 0x20;" (assignment_expression "iVar11 = 0x20" (identifier "iVar11") (= "=") (number_literal "0x20")) (; ";")) (if_statement "if ((Elf32_Ehdr *)0xff < pEVar20) {\n          iVar11 = 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          iVar11 = 0x18;\n        }" ({ "{") (expression_statement "iVar11 = 0x18;" (assignment_expression "iVar11 = 0x18" (identifier "iVar11") (= "=") (number_literal "0x18")) (; ";")) (} "}"))) (expression_statement "iVar13 = 9;" (assignment_expression "iVar13 = 9" (identifier "iVar13") (= "=") (number_literal "9")) (; ";")) (if_statement "if ((Elf32_Ehdr *)0xff >= pEVar20) {\n          iVar13 = 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          iVar13 = 1;\n        }" ({ "{") (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" (identifier "iVar13") (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }" (else "else") (compound_statement "{\n        iVar11 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 8;\n        }\n        iVar13 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 0x11;\n        }\n      }" ({ "{") (expression_statement "iVar11 = 0x10;" (assignment_expression "iVar11 = 0x10" (identifier "iVar11") (= "=") (number_literal "0x10")) (; ";")) (if_statement "if ((Elf32_Ehdr *)0xffffff < pEVar20) {\n          iVar11 = 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          iVar11 = 8;\n        }" ({ "{") (expression_statement "iVar11 = 8;" (assignment_expression "iVar11 = 8" (identifier "iVar11") (= "=") (number_literal "8")) (; ";")) (} "}"))) (expression_statement "iVar13 = 0x19;" (assignment_expression "iVar13 = 0x19" (identifier "iVar13") (= "=") (number_literal "0x19")) (; ";")) (if_statement "if ((Elf32_Ehdr *)0xffffff >= pEVar20) {\n          iVar13 = 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          iVar13 = 0x11;\n        }" ({ "{") (expression_statement "iVar13 = 0x11;" (assignment_expression "iVar13 = 0x11" (identifier "iVar13") (= "=") (number_literal "0x11")) (; ";")) (} "}"))) (} "}")))) (expression_statement "param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc)" (identifier "param_1") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar34 + 0x6bdbc)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar34 + 0x6bdbc)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar34 + 0x6bdbc)" (( "(") (binary_expression "puVar34 + 0x6bdbc" (identifier "puVar34") (+ "+") (number_literal "0x6bdbc")) () ")"))))) (; ";")) (expression_statement "iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];" (assignment_expression "iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1]" (identifier "iVar11") (= "=") (binary_expression "iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1]" (identifier "iVar11") (- "-") (cast_expression "(uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1]" (field_expression "param_1->e_ident_magic_str" (identifier "param_1") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (binary_expression "((uint)pEVar20 >> iVar13) - 1" (parenthesized_expression "((uint)pEVar20 >> iVar13)" (( "(") (binary_expression "(uint)pEVar20 >> iVar13" (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20")) (>> ">>") (identifier "iVar13")) () ")")) (- "-") (number_literal "1")) (] "]")))))) (; ";")) (expression_statement "*(int *)(puVar37 + -0x6c) = iVar11;" (assignment_expression "*(int *)(puVar37 + -0x6c) = iVar11" (pointer_expression "*(int *)(puVar37 + -0x6c)" (* "*") (cast_expression "(int *)(puVar37 + -0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x6c)" (( "(") (binary_expression "puVar37 + -0x6c" (identifier "puVar37") (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "puVar10 = puVar37 + -0xa8;" (assignment_expression "puVar10 = puVar37 + -0xa8" (identifier "puVar10") (= "=") (binary_expression "puVar37 + -0xa8" (identifier "puVar37") (+ "+") (number_literal "-0xa8"))) (; ";")) (if_statement "if (iVar11 != 0) {\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }\n        (**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;\n        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);\n        puVar10 = puVar38;\n      }" ({ "{") (if_statement "if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar37 + -0x50) + 4U < 0x7f01)" (( "(") (binary_expression "*(int *)(puVar37 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar37 + -0x50) + 4U" (pointer_expression "*(int *)(puVar37 + -0x50)" (* "*") (cast_expression "(int *)(puVar37 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "4U")) (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n          puVar38 = puVar37 + iVar11 + -0xa8;\n          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);\n        }" ({ "{") (expression_statement "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" (identifier "iVar11") (= "=") (unary_expression "-(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" (- "-") (parenthesized_expression "(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" (( "(") (binary_expression "*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar37 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar37 + -0x50)" (* "*") (cast_expression "(int *)(puVar37 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "0xbU")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar38 = puVar37 + iVar11 + -0xa8;" (assignment_expression "puVar38 = puVar37 + iVar11 + -0xa8" (identifier "puVar38") (= "=") (binary_expression "puVar37 + iVar11 + -0xa8" (binary_expression "puVar37 + iVar11" (identifier "puVar37") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "-0xa8"))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)(puVar37 + iVar11 + -0x90)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + iVar11 + -0x90)" (( "(") (binary_expression "puVar37 + iVar11 + -0x90" (binary_expression "puVar37 + iVar11" (identifier "puVar37") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "-0x90")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }" (else "else") (compound_statement "{\n          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n        }" ({ "{") (expression_statement "pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40)" (parenthesized_expression "(**(code **)(puVar34 + 0x6bf20))" (( "(") (pointer_expression "**(code **)(puVar34 + 0x6bf20)" (* "*") (pointer_expression "*(code **)(puVar34 + 0x6bf20)" (* "*") (cast_expression "(code **)(puVar34 + 0x6bf20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar34 + 0x6bf20)" (( "(") (binary_expression "puVar34 + 0x6bf20" (identifier "puVar34") (+ "+") (number_literal "0x6bf20")) () ")"))))) () ")")) (argument_list "(puVar37 + -0x40)" (( "(") (binary_expression "puVar37 + -0x40" (identifier "puVar37") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (} "}")))) (expression_statement "(**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  );" (call_expression "(**(code **)(puVar35 + -0x7ad4))\n                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  )" (parenthesized_expression "(**(code **)(puVar35 + -0x7ad4))" (( "(") (pointer_expression "**(code **)(puVar35 + -0x7ad4)" (* "*") (pointer_expression "*(code **)(puVar35 + -0x7ad4)" (* "*") (cast_expression "(code **)(puVar35 + -0x7ad4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7ad4)" (( "(") (binary_expression "puVar35 + -0x7ad4" (identifier "puVar35") (+ "+") (number_literal "-0x7ad4")) () ")"))))) () ")")) (argument_list "(pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)\n                  )" (( "(") (identifier "pEVar28") (, ",") (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x4c)" (( "(") (binary_expression "puVar37 + -0x4c" (identifier "puVar37") (+ "+") (number_literal "-0x4c")) () ")")))) (, ",") (identifier "pEVar32") (, ",") (pointer_expression "*(undefined4 *)(puVar37 + -0x6c)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x6c)" (( "(") (binary_expression "puVar37 + -0x6c" (identifier "puVar37") (+ "+") (number_literal "-0x6c")) () ")")))) () ")"))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x4c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x4c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x4c)" (( "(") (binary_expression "puVar37 + -0x4c" (identifier "puVar37") (+ "+") (number_literal "-0x4c")) () ")")))) (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" (identifier "pEVar20") (= "=") (pointer_expression "*(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" (* "*") (cast_expression "(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" (( "(") (binary_expression "pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1" (binary_expression "pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50)" (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (pointer_expression "*(int *)(puVar37 + -0x50)" (* "*") (cast_expression "(int *)(puVar37 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")"))))) (+ "+") (number_literal "-1")) () ")"))))) (; ";")) (expression_statement "puVar10 = puVar38;" (assignment_expression "puVar10 = puVar38" (identifier "puVar10") (= "=") (identifier "puVar38")) (; ";")) (} "}"))) (if_statement "if (pEVar32 == (Elf32_Ehdr *)0x1) {\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }" (if "if") (parenthesized_expression "(pEVar32 == (Elf32_Ehdr *)0x1)" (( "(") (binary_expression "pEVar32 == (Elf32_Ehdr *)0x1" (identifier "pEVar32") (== "==") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        pEVar27 = (Elf32_Ehdr *)0x0;\n      }" ({ "{") (expression_statement "pEVar27 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)0x0" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }" (else "else") (compound_statement "{\n        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);\n      }" ({ "{") (expression_statement "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4)" (identifier "pEVar27") (= "=") (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4)" (( "(") (binary_expression "*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4" (binary_expression "*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50)" (pointer_expression "*(int *)(puVar37 + -0x4c)" (* "*") (cast_expression "(int *)(puVar37 + -0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x4c)" (( "(") (binary_expression "puVar37 + -0x4c" (identifier "puVar37") (+ "+") (number_literal "-0x4c")) () ")")))) (+ "+") (pointer_expression "*(int *)(puVar37 + -0x50)" (* "*") (cast_expression "(int *)(puVar37 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")"))))) (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (} "}")))) (expression_statement "pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10)" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)pEVar20 >> 0x10)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)pEVar20 >> 0x10)" (( "(") (binary_expression "(uint)pEVar20 >> 0x10" (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (if_statement "if (pEVar18 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(pEVar18 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar18 == (Elf32_Ehdr *)0x0" (identifier "pEVar18") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        trap(7);\n      }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar42 = ~(uint)pEVar20 / (uint)pEVar18;" (assignment_expression "uVar42 = ~(uint)pEVar20 / (uint)pEVar18" (identifier "uVar42") (= "=") (binary_expression "~(uint)pEVar20 / (uint)pEVar18" (unary_expression "~(uint)pEVar20" (~ "~") (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20"))) (/ "/") (cast_expression "(uint)pEVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar18")))) (; ";")) (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 * uVar42);" (assignment_expression "in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42)" (identifier "in_t3") (= "=") (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar42)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t2 * uVar42)" (( "(") (binary_expression "in_t2 * uVar42" (identifier "in_t2") (* "*") (identifier "uVar42")) () ")")))) (; ";")) (expression_statement "pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff)" (identifier "pEVar30") (= "=") (cast_expression "(Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff)" (( "(") (binary_expression "~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff" (binary_expression "~(uint)pEVar20 % (uint)pEVar18 << 0x10" (binary_expression "~(uint)pEVar20 % (uint)pEVar18" (unary_expression "~(uint)pEVar20" (~ "~") (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20"))) (% "%") (cast_expression "(uint)pEVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar18"))) (<< "<<") (number_literal "0x10")) (| "|") (number_literal "0xffff")) () ")")))) (; ";")) (expression_statement "uVar17 = uVar42;" (assignment_expression "uVar17 = uVar42" (identifier "uVar17") (= "=") (identifier "uVar42")) (; ";")) (expression_statement "in_t1 = pEVar27;" (assignment_expression "in_t1 = pEVar27" (identifier "in_t1") (= "=") (identifier "pEVar27")) (; ";")) (expression_statement "puVar3 = puVar10;" (assignment_expression "puVar3 = puVar10" (identifier "puVar3") (= "=") (identifier "puVar10")) (; ";")) (if_statement "if (pEVar30 < in_t3) {\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }" (if "if") (parenthesized_expression "(pEVar30 < in_t3)" (( "(") (binary_expression "pEVar30 < in_t3" (identifier "pEVar30") (< "<") (identifier "in_t3")) () ")")) (compound_statement "{\n        pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));\n        uVar17 = uVar42 - 1;\n        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;\n      }" ({ "{") (expression_statement "pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));" (assignment_expression "pEVar30 = (Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (identifier "pEVar30") (= "=") (cast_expression "(Elf32_Ehdr *)\n                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (( "(") (binary_expression "pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (cast_expression "(int)(pEVar30->e_ident_magic_str + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pEVar30->e_ident_magic_str + -2)" (( "(") (binary_expression "pEVar30->e_ident_magic_str + -2" (field_expression "pEVar30->e_ident_magic_str" (identifier "pEVar30") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (number_literal "-2")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar17 = uVar42 - 1;" (assignment_expression "uVar17 = uVar42 - 1" (identifier "uVar17") (= "=") (binary_expression "uVar42 - 1" (identifier "uVar42") (- "-") (number_literal "1"))) (; ";")) (if_statement "if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))\n        goto LAB_00031d4c;" (if "if") (parenthesized_expression "((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))" (( "(") (binary_expression "(pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3)" (parenthesized_expression "(pEVar20 <= pEVar30)" (( "(") (binary_expression "pEVar20 <= pEVar30" (identifier "pEVar20") (<= "<=") (identifier "pEVar30")) () ")")) (&& "&&") (parenthesized_expression "(uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3)" (( "(") (comma_expression "uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3" (assignment_expression "uVar44 = CONCAT44(pEVar30,uVar42 - 2)" (identifier "uVar44") (= "=") (call_expression "CONCAT44(pEVar30,uVar42 - 2)" (identifier "CONCAT44") (argument_list "(pEVar30,uVar42 - 2)" (( "(") (identifier "pEVar30") (, ",") (binary_expression "uVar42 - 2" (identifier "uVar42") (- "-") (number_literal "2")) () ")")))) (, ",") (binary_expression "pEVar30 < in_t3" (identifier "pEVar30") (< "<") (identifier "in_t3"))) () ")"))) () ")")) (goto_statement "goto LAB_00031d4c;" (goto "goto") (statement_identifier "LAB_00031d4c") (; ";"))) (} "}"))) (} "}")))) (if_statement "if (pEVar18 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(pEVar18 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar18 == (Elf32_Ehdr *)0x0" (identifier "pEVar18") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (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 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;" (assignment_expression "uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18" (identifier "uVar43") (= "=") (binary_expression "(uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18" (call_expression "(uint)((int)pEVar30 - (int)in_t3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pEVar30 - (int)in_t3)" (( "(") (binary_expression "(int)pEVar30 - (int)in_t3" (cast_expression "(int)pEVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar30")) (- "-") (cast_expression "(int)in_t3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t3"))) () ")"))) (/ "/") (cast_expression "(uint)pEVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar18")))) (; ";")) (expression_statement "pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff)" (identifier "pEVar30") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff)" (( "(") (binary_expression "(uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff" (binary_expression "(uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10" (binary_expression "(uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18" (call_expression "(uint)((int)pEVar30 - (int)in_t3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pEVar30 - (int)in_t3)" (( "(") (binary_expression "(int)pEVar30 - (int)in_t3" (cast_expression "(int)pEVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar30")) (- "-") (cast_expression "(int)in_t3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t3"))) () ")"))) (% "%") (cast_expression "(uint)pEVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar18"))) (<< "<<") (number_literal "0x10")) (| "|") (number_literal "0xffff")) () ")")))) (; ";")) (expression_statement "uVar42 = uVar43;" (assignment_expression "uVar42 = uVar43" (identifier "uVar42") (= "=") (identifier "uVar43")) (; ";")) (if_statement "if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {\n      uVar42 = uVar43 - 1;\n    }" (if "if") (parenthesized_expression "((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))))))" (( "(") (binary_expression "(pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&\n       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))" (parenthesized_expression "(pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43))" (( "(") (binary_expression "pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)" (identifier "pEVar30") (< "<") (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar43)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t2 * uVar43)" (( "(") (binary_expression "in_t2 * uVar43" (identifier "in_t2") (* "*") (identifier "uVar43")) () ")")))) () ")")) (&& "&&") (parenthesized_expression "(((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))" (( "(") (parenthesized_expression "((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))))" (( "(") (binary_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20 ||\n        (uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))" (binary_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <\n         pEVar20" (cast_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (( "(") (binary_expression "pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (cast_expression "(int)(pEVar30->e_ident_magic_str + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pEVar30->e_ident_magic_str + -2)" (( "(") (binary_expression "pEVar30->e_ident_magic_str + -2" (field_expression "pEVar30->e_ident_magic_str" (identifier "pEVar30") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (number_literal "-2")) () ")")))) () ")"))) (< "<") (identifier "pEVar20")) (|| "||") (parenthesized_expression "(uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))" (( "(") (comma_expression "uVar42 = uVar43 - 2,\n        (Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (assignment_expression "uVar42 = uVar43 - 2" (identifier "uVar42") (= "=") (binary_expression "uVar43 - 2" (identifier "uVar43") (- "-") (number_literal "2"))) (, ",") (binary_expression "(Elf32_Ehdr *)(in_t2 * uVar43) <=\n        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (cast_expression "(Elf32_Ehdr *)(in_t2 * uVar43)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t2 * uVar43)" (( "(") (binary_expression "in_t2 * uVar43" (identifier "in_t2") (* "*") (identifier "uVar43")) () ")"))) (<= "<=") (cast_expression "(Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (( "(") (binary_expression "pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (cast_expression "(int)(pEVar30->e_ident_magic_str + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pEVar30->e_ident_magic_str + -2)" (( "(") (binary_expression "pEVar30->e_ident_magic_str + -2" (field_expression "pEVar30->e_ident_magic_str" (identifier "pEVar30") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (number_literal "-2")) () ")")))) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      uVar42 = uVar43 - 1;\n    }" ({ "{") (expression_statement "uVar42 = uVar43 - 1;" (assignment_expression "uVar42 = uVar43 - 1" (identifier "uVar42") (= "=") (binary_expression "uVar43 - 1" (identifier "uVar43") (- "-") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar42 = uVar17 << 0x10 | uVar42;" (assignment_expression "uVar42 = uVar17 << 0x10 | uVar42" (identifier "uVar42") (= "=") (binary_expression "uVar17 << 0x10 | uVar42" (binary_expression "uVar17 << 0x10" (identifier "uVar17") (<< "<<") (number_literal "0x10")) (| "|") (identifier "uVar42"))) (; ";")) (expression_statement "pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1)" (identifier "pEVar30") (= "=") (cast_expression "(Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1)" (( "(") (binary_expression "in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1" (binary_expression "in_t1->e_ident_magic_str + uVar42 * (int)pEVar20" (field_expression "in_t1->e_ident_magic_str" (identifier "in_t1") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "uVar42 * (int)pEVar20" (identifier "uVar42") (* "*") (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20")))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);" (assignment_expression "lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27)" (identifier "lVar2") (= "=") (binary_expression "(ulonglong)uVar42 * ZEXT48(pEVar27)" (cast_expression "(ulonglong)uVar42" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar42")) (* "*") (call_expression "ZEXT48(pEVar27)" (identifier "ZEXT48") (argument_list "(pEVar27)" (( "(") (identifier "pEVar27") () ")"))))) (; ";")) (if_statement "if (pEVar30 < in_t1) {\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }" (if "if") (parenthesized_expression "(pEVar30 < in_t1)" (( "(") (binary_expression "pEVar30 < in_t1" (identifier "pEVar30") (< "<") (identifier "in_t1")) () ")")) (compound_statement "{\n      uVar17 = pEVar30 < pEVar20 ^ 1;\n      pEVar18 = pEVar20;\n      if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }\n      uVar42 = (uVar42 - 1) - uVar17;\n      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));\n      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);\n    }" ({ "{") (expression_statement "uVar17 = pEVar30 < pEVar20 ^ 1;" (assignment_expression "uVar17 = pEVar30 < pEVar20 ^ 1" (identifier "uVar17") (= "=") (binary_expression "pEVar30 < pEVar20 ^ 1" (binary_expression "pEVar30 < pEVar20" (identifier "pEVar30") (< "<") (identifier "pEVar20")) (^ "^") (number_literal "1"))) (; ";")) (expression_statement "pEVar18 = pEVar20;" (assignment_expression "pEVar18 = pEVar20" (identifier "pEVar18") (= "=") (identifier "pEVar20")) (; ";")) (if_statement "if (uVar17 == 0) {\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }" (if "if") (parenthesized_expression "(uVar17 == 0)" (( "(") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pEVar18 = (Elf32_Ehdr *)0x0;\n      }" ({ "{") (expression_statement "pEVar18 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)0x0" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "uVar42 = (uVar42 - 1) - uVar17;" (assignment_expression "uVar42 = (uVar42 - 1) - uVar17" (identifier "uVar42") (= "=") (binary_expression "(uVar42 - 1) - uVar17" (parenthesized_expression "(uVar42 - 1)" (( "(") (binary_expression "uVar42 - 1" (identifier "uVar42") (- "-") (number_literal "1")) () ")")) (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));" (assignment_expression "pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20))" (identifier "pEVar30") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20))" (( "(") (binary_expression "(int)pEVar30 + (-(int)pEVar18 - (int)pEVar20)" (cast_expression "(int)pEVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar30")) (+ "+") (parenthesized_expression "(-(int)pEVar18 - (int)pEVar20)" (( "(") (binary_expression "-(int)pEVar18 - (int)pEVar20" (unary_expression "-(int)pEVar18" (- "-") (cast_expression "(int)pEVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar18"))) (- "-") (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20"))) () ")"))) () ")")))) (; ";")) (expression_statement "lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);" (assignment_expression "lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27)" (identifier "lVar2") (= "=") (binary_expression "(ulonglong)uVar42 * ZEXT48(pEVar27)" (cast_expression "(ulonglong)uVar42" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar42")) (* "*") (call_expression "ZEXT48(pEVar27)" (identifier "ZEXT48") (argument_list "(pEVar27)" (( "(") (identifier "pEVar27") () ")"))))) (; ";")) (} "}"))) (expression_statement "pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20)" (identifier "pEVar27") (= "=") (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 "pEVar18 = (Elf32_Ehdr *)lVar2;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)lVar2" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)lVar2" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "lVar2"))) (; ";")) (expression_statement "pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (identifier "pEVar30") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2))" (( "(") (binary_expression "pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (cast_expression "(int)(pEVar30->e_ident_magic_str + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pEVar30->e_ident_magic_str + -2)" (( "(") (binary_expression "pEVar30->e_ident_magic_str + -2" (field_expression "pEVar30->e_ident_magic_str" (identifier "pEVar30") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (number_literal "-2")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar17 = uVar42;" (assignment_expression "uVar17 = uVar42" (identifier "uVar17") (= "=") (identifier "uVar42")) (; ";")) (if_statement "if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {\n      uVar17 = uVar42 - 2;\n    }" (if "if") (parenthesized_expression "(((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18))))" (( "(") (binary_expression "((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&\n       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))" (parenthesized_expression "((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30))" (( "(") (binary_expression "(pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)" (parenthesized_expression "(pEVar30 < pEVar27)" (( "(") (binary_expression "pEVar30 < pEVar27" (identifier "pEVar30") (< "<") (identifier "pEVar27")) () ")")) (&& "&&") (parenthesized_expression "(uVar17 = uVar42 - 1, pEVar20 <= pEVar30)" (( "(") (comma_expression "uVar17 = uVar42 - 1, pEVar20 <= pEVar30" (assignment_expression "uVar17 = uVar42 - 1" (identifier "uVar17") (= "=") (binary_expression "uVar42 - 1" (identifier "uVar42") (- "-") (number_literal "1"))) (, ",") (binary_expression "pEVar20 <= pEVar30" (identifier "pEVar20") (<= "<=") (identifier "pEVar30"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))" (( "(") (parenthesized_expression "(pEVar20 < pEVar30 || (in_t1 <= pEVar18))" (( "(") (binary_expression "pEVar20 < pEVar30 || (in_t1 <= pEVar18)" (binary_expression "pEVar20 < pEVar30" (identifier "pEVar20") (< "<") (identifier "pEVar30")) (|| "||") (parenthesized_expression "(in_t1 <= pEVar18)" (( "(") (binary_expression "in_t1 <= pEVar18" (identifier "in_t1") (<= "<=") (identifier "pEVar18")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      uVar17 = uVar42 - 2;\n    }" ({ "{") (expression_statement "uVar17 = uVar42 - 2;" (assignment_expression "uVar17 = uVar42 - 2" (identifier "uVar17") (= "=") (binary_expression "uVar42 - 2" (identifier "uVar42") (- "-") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "*(uint *)(puVar37 + -0x44) = uVar17;" (assignment_expression "*(uint *)(puVar37 + -0x44) = uVar17" (pointer_expression "*(uint *)(puVar37 + -0x44)" (* "*") (cast_expression "(uint *)(puVar37 + -0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x44)" (( "(") (binary_expression "puVar37 + -0x44" (identifier "puVar37") (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4)" (identifier "pEVar27") (= "=") (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar37 + -0x5c) + 4)" (( "(") (binary_expression "*(int *)(puVar37 + -0x5c) + 4" (pointer_expression "*(int *)(puVar37 + -0x5c)" (* "*") (cast_expression "(int *)(puVar37 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x5c)" (( "(") (binary_expression "puVar37 + -0x5c" (identifier "puVar37") (+ "+") (number_literal "-0x5c")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pEVar30 = pEVar27;" (assignment_expression "pEVar30 = pEVar27" (identifier "pEVar30") (= "=") (identifier "pEVar27")) (; ";")) (if_statement "if ((int)pEVar27 < 0) {\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }" (if "if") (parenthesized_expression "((int)pEVar27 < 0)" (( "(") (binary_expression "(int)pEVar27 < 0" (cast_expression "(int)pEVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar27")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;\n    }" ({ "{") (expression_statement "pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)-(int)pEVar27" (identifier "pEVar30") (= "=") (cast_expression "(Elf32_Ehdr *)-(int)pEVar27" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)pEVar27" (- "-") (cast_expression "(int)pEVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar27"))))) (; ";")) (} "}"))) (expression_statement "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);" (assignment_expression "pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8)" (identifier "pEVar20") (= "=") (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar37 + -0x5c) + 8)" (( "(") (binary_expression "*(int *)(puVar37 + -0x5c) + 8" (pointer_expression "*(int *)(puVar37 + -0x5c)" (* "*") (cast_expression "(int *)(puVar37 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x5c)" (( "(") (binary_expression "puVar37 + -0x5c" (identifier "puVar37") (+ "+") (number_literal "-0x5c")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((int)pEVar30 <= (int)pEVar32) {\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }" (if "if") (parenthesized_expression "((int)pEVar30 <= (int)pEVar32)" (( "(") (binary_expression "(int)pEVar30 <= (int)pEVar32" (cast_expression "(int)pEVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar30")) (<= "<=") (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32"))) () ")")) (compound_statement "{\n      if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }\nLAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);\n      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      if (piVar14 == (int *)0x0) goto LAB_00031764;\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\nLAB_00031708:\n      (*pcVar39)();\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      goto LAB_00031764;\n    }" ({ "{") (if_statement "if (pEVar27 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }" (if "if") (parenthesized_expression "(pEVar27 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar27 != (Elf32_Ehdr *)0x0" (identifier "pEVar27") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;\n        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;\n        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);\n        goto LAB_000317f8;\n      }" ({ "{") (expression_statement "*(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -100) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -100)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -100)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -100)" (( "(") (binary_expression "puVar37 + -100" (identifier "puVar37") (+ "+") (number_literal "-100")) () ")")))) (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "*(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;" (assignment_expression "*(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U" (pointer_expression "*(uint *)(puVar37 + -0x70)" (* "*") (cast_expression "(uint *)(puVar37 + -0x70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x70)" (( "(") (binary_expression "puVar37 + -0x70" (identifier "puVar37") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (binary_expression "*(int *)(puVar37 + -0x50) + 4U" (pointer_expression "*(int *)(puVar37 + -0x50)" (* "*") (cast_expression "(int *)(puVar37 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "4U"))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(puVar37 + -0x50) + 4U < 0x7f01)" (( "(") (binary_expression "*(int *)(puVar37 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar37 + -0x50) + 4U" (pointer_expression "*(int *)(puVar37 + -0x50)" (* "*") (cast_expression "(int *)(puVar37 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "4U")) (< "<") (number_literal "0x7f01")) () ")"))))) (; ";")) (goto_statement "goto LAB_000317f8;" (goto "goto") (statement_identifier "LAB_000317f8") (; ";")) (} "}"))) (labeled_statement "LAB_000316f4:\n      piVar14 = *(int **)(puVar37 + -0x40);" (statement_identifier "LAB_000316f4") (: ":") (expression_statement "piVar14 = *(int **)(puVar37 + -0x40);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x40)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(puVar37 + -0x40)" (* "*") (cast_expression "(int **)(puVar37 + -0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x40)" (( "(") (binary_expression "puVar37 + -0x40" (identifier "puVar37") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";"))) (expression_statement "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar37 + -0x54) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar37 + -0x54) + 4)" (( "(") (binary_expression "*(int *)(puVar37 + -0x54) + 4" (pointer_expression "*(int *)(puVar37 + -0x54)" (* "*") (cast_expression "(int *)(puVar37 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar14 == (int *)0x0) goto LAB_00031764;" (if "if") (parenthesized_expression "(piVar14 == (int *)0x0)" (( "(") (binary_expression "piVar14 == (int *)0x0" (identifier "piVar14") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00031764;" (goto "goto") (statement_identifier "LAB_00031764") (; ";"))) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7a28);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7a28)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(puVar35 + -0x7a28)" (* "*") (cast_expression "(code **)(puVar35 + -0x7a28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7a28)" (( "(") (binary_expression "puVar35 + -0x7a28" (identifier "puVar35") (+ "+") (number_literal "-0x7a28")) () ")"))))) (; ";")) (labeled_statement "LAB_00031708:\n      (*pcVar39)();" (statement_identifier "LAB_00031708") (: ":") (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" (( "(") (pointer_expression "*pcVar39" (* "*") (identifier "pcVar39")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (goto_statement "goto LAB_00031764;" (goto "goto") (statement_identifier "LAB_00031764") (; ";")) (} "}"))) (expression_statement "uVar17 = *(int *)(puVar37 + -0x50) + 4;" (assignment_expression "uVar17 = *(int *)(puVar37 + -0x50) + 4" (identifier "uVar17") (= "=") (binary_expression "*(int *)(puVar37 + -0x50) + 4" (pointer_expression "*(int *)(puVar37 + -0x50)" (* "*") (cast_expression "(int *)(puVar37 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)(uint)(uVar17 < 0x7f01)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(uVar17 < 0x7f01)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar17 < 0x7f01)" (( "(") (binary_expression "uVar17 < 0x7f01" (identifier "uVar17") (< "<") (number_literal "0x7f01")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar37 + -0x70) = uVar17;" (assignment_expression "*(uint *)(puVar37 + -0x70) = uVar17" (pointer_expression "*(uint *)(puVar37 + -0x70)" (* "*") (cast_expression "(uint *)(puVar37 + -0x70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x70)" (( "(") (binary_expression "puVar37 + -0x70" (identifier "puVar37") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "uVar17")) (; ";")) (if_statement "if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }\n    else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\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      pcVar39 = *(code **)(puVar35 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;\n      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);\n      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n    }" ({ "{") (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7d50);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7d50)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(puVar35 + -0x7d50)" (* "*") (cast_expression "(code **)(puVar35 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7d50)" (( "(") (binary_expression "puVar35 + -0x7d50" (identifier "puVar35") (+ "+") (number_literal "-0x7d50")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x60)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x60)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x60)" (( "(") (binary_expression "puVar37 + -0x60" (identifier "puVar37") (+ "+") (number_literal "-0x60")) () ")")))) (= "=") (identifier "pEVar30")) (; ";")) (expression_statement "puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);" (assignment_expression "puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17)" (identifier "puVar10") (= "=") (cast_expression "(undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar39)(puVar37 + -0x40,uVar17)" (parenthesized_expression "(*pcVar39)" (( "(") (pointer_expression "*pcVar39" (* "*") (identifier "pcVar39")) () ")")) (argument_list "(puVar37 + -0x40,uVar17)" (( "(") (binary_expression "puVar37 + -0x40" (identifier "puVar37") (+ "+") (number_literal "-0x40")) (, ",") (identifier "uVar17") () ")"))))) (; ";")) (expression_statement "pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);" (assignment_expression "pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60)" (identifier "pEVar30") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x60)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x60)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x60)" (( "(") (binary_expression "puVar37 + -0x60" (identifier "puVar37") (+ "+") (number_literal "-0x60")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar37 + -100) = puVar10;" (assignment_expression "*(undefined1 **)(puVar37 + -100) = puVar10" (pointer_expression "*(undefined1 **)(puVar37 + -100)" (* "*") (cast_expression "(undefined1 **)(puVar37 + -100)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -100)" (( "(") (binary_expression "puVar37 + -100" (identifier "puVar37") (+ "+") (number_literal "-100")) () ")")))) (= "=") (identifier "puVar10")) (; ";")) (} "}")) (else_clause "else {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }" (else "else") (compound_statement "{\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + 0x18;\n      *(undefined1 **)(puVar37 + -100) = puVar10;\n      puVar3 = puVar3 + iVar11;\n    }" ({ "{") (expression_statement "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" (identifier "iVar11") (= "=") (unary_expression "-(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" (- "-") (parenthesized_expression "(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8)" (( "(") (binary_expression "*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar37 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar37 + -0x50)" (* "*") (cast_expression "(int *)(puVar37 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "0xbU")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar10 = puVar3 + iVar11 + 0x18;" (assignment_expression "puVar10 = puVar3 + iVar11 + 0x18" (identifier "puVar10") (= "=") (binary_expression "puVar3 + iVar11 + 0x18" (binary_expression "puVar3 + iVar11" (identifier "puVar3") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "*(undefined1 **)(puVar37 + -100) = puVar10;" (assignment_expression "*(undefined1 **)(puVar37 + -100) = puVar10" (pointer_expression "*(undefined1 **)(puVar37 + -100)" (* "*") (cast_expression "(undefined1 **)(puVar37 + -100)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -100)" (( "(") (binary_expression "puVar37 + -100" (identifier "puVar37") (+ "+") (number_literal "-100")) () ")")))) (= "=") (identifier "puVar10")) (; ";")) (expression_statement "puVar3 = puVar3 + iVar11;" (assignment_expression "puVar3 = puVar3 + iVar11" (identifier "puVar3") (= "=") (binary_expression "puVar3 + iVar11" (identifier "puVar3") (+ "+") (identifier "iVar11"))) (; ";")) (} "}")))) (expression_statement "uVar25 = *(undefined4 *)(puVar37 + -0x4c);" (assignment_expression "uVar25 = *(undefined4 *)(puVar37 + -0x4c)" (identifier "uVar25") (= "=") (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x4c)" (( "(") (binary_expression "puVar37 + -0x4c" (identifier "puVar37") (+ "+") (number_literal "-0x4c")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x14) = puVar37 + -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 "puVar37 + -0x44" (identifier "puVar37") (+ "+") (number_literal "-0x44"))) (; ";")) (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 "pEVar18 = pEVar20;" (assignment_expression "pEVar18 = pEVar20" (identifier "pEVar18") (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25);" (call_expression "FUN_000311c8(puVar10,pEVar20,pEVar30,uVar25)" (identifier "FUN_000311c8") (argument_list "(puVar10,pEVar20,pEVar30,uVar25)" (( "(") (identifier "puVar10") (, ",") (identifier "pEVar20") (, ",") (identifier "pEVar30") (, ",") (identifier "uVar25") () ")"))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "pEVar30 = pEVar32;" (assignment_expression "pEVar30 = pEVar32" (identifier "pEVar30") (= "=") (identifier "pEVar32")) (; ";")) (if_statement "if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0)" (( "(") (binary_expression "*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0" (pointer_expression "*(int *)(puVar10 + *(int *)(puVar37 + -0x50))" (* "*") (cast_expression "(int *)(puVar10 + *(int *)(puVar37 + -0x50))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + *(int *)(puVar37 + -0x50))" (( "(") (binary_expression "puVar10 + *(int *)(puVar37 + -0x50)" (identifier "puVar10") (+ "+") (pointer_expression "*(int *)(puVar37 + -0x50)" (* "*") (cast_expression "(int *)(puVar37 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")"))))) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);\n      do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);\n    }" ({ "{") (expression_statement "puVar10 = puVar10 + *(int *)(puVar37 + -0x70);" (assignment_expression "puVar10 = puVar10 + *(int *)(puVar37 + -0x70)" (identifier "puVar10") (= "=") (binary_expression "puVar10 + *(int *)(puVar37 + -0x70)" (identifier "puVar10") (+ "+") (pointer_expression "*(int *)(puVar37 + -0x70)" (* "*") (cast_expression "(int *)(puVar37 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x70)" (( "(") (binary_expression "puVar37 + -0x70" (identifier "puVar37") (+ "+") (number_literal "-0x70")) () ")")))))) (; ";")) (do_statement "do {\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      } while (*piVar14 == 0);" (do "do") (compound_statement "{\n        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);\n        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;\n        piVar14 = (int *)(puVar10 + -8);\n        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);\n        puVar10 = puVar10 + -4;\n      }" ({ "{") (expression_statement "pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1)" (identifier "pEVar30") (= "=") (cast_expression "(Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (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 "int")) () ")") (pointer_expression "&pEVar30[-1].e_shstrndx" (& "&") (field_expression "pEVar30[-1].e_shstrndx" (subscript_expression "pEVar30[-1]" (identifier "pEVar30") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;" (if "if") (parenthesized_expression "(pEVar30 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar30 == (Elf32_Ehdr *)0x0" (identifier "pEVar30") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000316f4;" (goto "goto") (statement_identifier "LAB_000316f4") (; ";"))) (expression_statement "piVar14 = (int *)(puVar10 + -8);" (assignment_expression "piVar14 = (int *)(puVar10 + -8)" (identifier "piVar14") (= "=") (cast_expression "(int *)(puVar10 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -8)" (( "(") (binary_expression "puVar10 + -8" (identifier "puVar10") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3)" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar32 << 3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar32 << 3)" (( "(") (binary_expression "(int)pEVar32 << 3" (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32")) (<< "<<") (number_literal "3")) () ")")))) (; ";")) (expression_statement "puVar10 = puVar10 + -4;" (assignment_expression "puVar10 = puVar10 + -4" (identifier "puVar10") (= "=") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar14 == 0)" (( "(") (binary_expression "*piVar14 == 0" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (== "==") (number_literal "0")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_000317f8:\n    if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }" (statement_identifier "LAB_000317f8") (: ":") (if_statement "if ((int)pEVar32 * 8 + 4U < 0x7f01) {\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }" (if "if") (parenthesized_expression "((int)pEVar32 * 8 + 4U < 0x7f01)" (( "(") (binary_expression "(int)pEVar32 * 8 + 4U < 0x7f01" (binary_expression "(int)pEVar32 * 8 + 4U" (binary_expression "(int)pEVar32 * 8" (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32")) (* "*") (number_literal "8")) (+ "+") (number_literal "4U")) (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n      iVar11 = -((int)pEVar32 * 8 + 8);\n      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);\n      puVar3 = puVar3 + iVar11;\n    }" ({ "{") (expression_statement "iVar11 = -((int)pEVar32 * 8 + 8);" (assignment_expression "iVar11 = -((int)pEVar32 * 8 + 8)" (identifier "iVar11") (= "=") (unary_expression "-((int)pEVar32 * 8 + 8)" (- "-") (parenthesized_expression "((int)pEVar32 * 8 + 8)" (( "(") (binary_expression "(int)pEVar32 * 8 + 8" (binary_expression "(int)pEVar32 * 8" (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32")) (* "*") (number_literal "8")) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18)" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar11 + 0x18)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + iVar11 + 0x18)" (( "(") (binary_expression "puVar3 + iVar11 + 0x18" (binary_expression "puVar3 + iVar11" (identifier "puVar3") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar3 = puVar3 + iVar11;" (assignment_expression "puVar3 = puVar3 + iVar11" (identifier "puVar3") (= "=") (binary_expression "puVar3 + iVar11" (identifier "puVar3") (+ "+") (identifier "iVar11"))) (; ";")) (} "}")) (else_clause "else {\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }" (else "else") (compound_statement "{\n      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }" ({ "{") (expression_statement "pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40)" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40)" (parenthesized_expression "(**(code **)(puVar35 + -0x7d50))" (( "(") (pointer_expression "**(code **)(puVar35 + -0x7d50)" (* "*") (pointer_expression "*(code **)(puVar35 + -0x7d50)" (* "*") (cast_expression "(code **)(puVar35 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7d50)" (( "(") (binary_expression "puVar35 + -0x7d50" (identifier "puVar35") (+ "+") (number_literal "-0x7d50")) () ")"))))) () ")")) (argument_list "(puVar37 + -0x40)" (( "(") (binary_expression "puVar37 + -0x40" (identifier "puVar37") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (} "}"))))) (if_statement "if (pEVar28 == (Elf32_Ehdr *)0x0) {\n      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }\n    else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\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      param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n    }" ({ "{") (expression_statement "param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));" (assignment_expression "param_6 = (Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70))" (identifier "param_6") (= "=") (cast_expression "(Elf32_Ehdr *)\n                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70))" (parenthesized_expression "(**(code **)(puVar35 + -0x7d50))" (( "(") (pointer_expression "**(code **)(puVar35 + -0x7d50)" (* "*") (pointer_expression "*(code **)(puVar35 + -0x7d50)" (* "*") (cast_expression "(code **)(puVar35 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7d50)" (( "(") (binary_expression "puVar35 + -0x7d50" (identifier "puVar35") (+ "+") (number_literal "-0x7d50")) () ")"))))) () ")")) (argument_list "(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70))" (( "(") (binary_expression "puVar37 + -0x40" (identifier "puVar37") (+ "+") (number_literal "-0x40")) (, ",") (pointer_expression "*(undefined4 *)(puVar37 + -0x70)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x70)" (( "(") (binary_expression "puVar37 + -0x70" (identifier "puVar37") (+ "+") (number_literal "-0x70")) () ")")))) () ")"))))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }" (else "else") (compound_statement "{\n      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);\n    }" ({ "{") (expression_statement "param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);" (assignment_expression "param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18)" (identifier "param_6") (= "=") (cast_expression "(Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18)" (( "(") (binary_expression "puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18" (binary_expression "puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" (identifier "puVar3") (+ "+") (unary_expression "-(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" (( "(") (binary_expression "*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar37 + -0x70) + 7U" (pointer_expression "*(int *)(puVar37 + -0x70)" (* "*") (cast_expression "(int *)(puVar37 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x70)" (( "(") (binary_expression "puVar37 + -0x70" (identifier "puVar37") (+ "+") (number_literal "-0x70")) () ")")))) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);" (assignment_expression "puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" (identifier "puVar3") (= "=") (binary_expression "puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" (identifier "puVar3") (+ "+") (unary_expression "-(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8)" (( "(") (binary_expression "*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar37 + -0x70) + 7U" (pointer_expression "*(int *)(puVar37 + -0x70)" (* "*") (cast_expression "(int *)(puVar37 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x70)" (( "(") (binary_expression "puVar37 + -0x70" (identifier "puVar37") (+ "+") (number_literal "-0x70")) () ")")))) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }\n    else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar37 + -0x50) + 8U < 0x7f01)" (( "(") (binary_expression "*(int *)(puVar37 + -0x50) + 8U < 0x7f01" (binary_expression "*(int *)(puVar37 + -0x50) + 8U" (pointer_expression "*(int *)(puVar37 + -0x50)" (* "*") (cast_expression "(int *)(puVar37 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "8U")) (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;\n      puVar3 = puVar3 + iVar11;\n    }" ({ "{") (expression_statement "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);" (assignment_expression "iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8)" (identifier "iVar11") (= "=") (unary_expression "-(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8)" (- "-") (parenthesized_expression "(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8)" (( "(") (binary_expression "*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8" (binary_expression "*(int *)(puVar37 + -0x50) + 0xfU" (pointer_expression "*(int *)(puVar37 + -0x50)" (* "*") (cast_expression "(int *)(puVar37 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "0xfU")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "*(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;" (assignment_expression "*(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18" (pointer_expression "*(undefined1 **)(puVar37 + -0x74)" (* "*") (cast_expression "(undefined1 **)(puVar37 + -0x74)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x74)" (( "(") (binary_expression "puVar37 + -0x74" (identifier "puVar37") (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (binary_expression "puVar3 + iVar11 + 0x18" (binary_expression "puVar3 + iVar11" (identifier "puVar3") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "puVar3 = puVar3 + iVar11;" (assignment_expression "puVar3 = puVar3 + iVar11" (identifier "puVar3") (= "=") (binary_expression "puVar3 + iVar11" (identifier "puVar3") (+ "+") (identifier "iVar11"))) (; ";")) (} "}")) (else_clause "else {\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }" (else "else") (compound_statement "{\n      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      *(undefined4 *)(puVar37 + -0x74) = uVar25;\n    }" ({ "{") (expression_statement "uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);" (assignment_expression "uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40)" (identifier "uVar25") (= "=") (call_expression "(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40)" (parenthesized_expression "(**(code **)(puVar35 + -0x7d50))" (( "(") (pointer_expression "**(code **)(puVar35 + -0x7d50)" (* "*") (pointer_expression "*(code **)(puVar35 + -0x7d50)" (* "*") (cast_expression "(code **)(puVar35 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7d50)" (( "(") (binary_expression "puVar35 + -0x7d50" (identifier "puVar35") (+ "+") (number_literal "-0x7d50")) () ")"))))) () ")")) (argument_list "(puVar37 + -0x40)" (( "(") (binary_expression "puVar37 + -0x40" (identifier "puVar37") (+ "+") (number_literal "-0x40")) () ")")))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar37 + -0x74) = uVar25;" (assignment_expression "*(undefined4 *)(puVar37 + -0x74) = uVar25" (pointer_expression "*(undefined4 *)(puVar37 + -0x74)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x74)" (( "(") (binary_expression "puVar37 + -0x74" (identifier "puVar37") (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (identifier "uVar25")) (; ";")) (} "}")))) (expression_statement "puVar4 = *(undefined4 **)(puVar37 + -100);" (assignment_expression "puVar4 = *(undefined4 **)(puVar37 + -100)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(puVar37 + -100)" (* "*") (cast_expression "(undefined4 **)(puVar37 + -100)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -100)" (( "(") (binary_expression "puVar37 + -100" (identifier "puVar37") (+ "+") (number_literal "-100")) () ")"))))) (; ";")) (expression_statement "puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);" (assignment_expression "puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1)" (identifier "puVar23") (= "=") (cast_expression "(undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (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 "int")) () ")") (pointer_expression "&pEVar30[-1].e_shstrndx" (& "&") (field_expression "pEVar30[-1].e_shstrndx" (subscript_expression "pEVar30[-1]" (identifier "pEVar30") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pEVar18 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)*puVar4" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)*puVar4" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) (; ";")) (expression_statement "pEVar28 = param_6;" (assignment_expression "pEVar28 = param_6" (identifier "pEVar28") (= "=") (identifier "param_6")) (; ";")) (expression_statement "puVar10 = puVar23;" (assignment_expression "puVar10 = puVar23" (identifier "puVar10") (= "=") (identifier "puVar23")) (; ";")) (if_statement "if (puVar23 != (undefined1 *)0x0) {\n      do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }" (if "if") (parenthesized_expression "(puVar23 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar23 != (undefined1 *)0x0" (identifier "puVar23") (!= "!=") (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 **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);\n      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);\n    }" ({ "{") (do_statement "do {\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar10 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n        puVar4 = puVar4 + 1;\n        *(Elf32_Ehdr **)pEVar28 = pEVar18;\n        puVar10 = puVar10 + -1;\n        pEVar18 = (Elf32_Ehdr *)*puVar4;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->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 **)pEVar28 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)pEVar28 = pEVar18" (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 "pEVar18")) (; ";")) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + -1" (identifier "puVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar18 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)*puVar4" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)*puVar4" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) (; ";")) (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 "(puVar10 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar10 != (undefined1 *)0x0" (identifier "puVar10") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-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)&pEVar30[-1].e_shstrndx * 4 + 3)" (( "(") (binary_expression "param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3" (binary_expression "param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)&pEVar30[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar30[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar30[-1].e_shstrndx" (& "&") (field_expression "pEVar30[-1].e_shstrndx" (subscript_expression "pEVar30[-1]" (identifier "pEVar30") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "3")) () ")")))) (; ";")) (} "}"))) (expression_statement "*(Elf32_Ehdr **)pEVar28 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)pEVar28 = pEVar18" (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 "pEVar18")) (; ";")) (expression_statement "param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);" (assignment_expression "param_1 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1])" (identifier "param_1") (= "=") (cast_expression "(Elf32_Ehdr *)\n              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)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[((uint)param_4 >> 1) - 1])" (( "(") (binary_expression "0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]" (number_literal "0x20") (- "-") (cast_expression "(uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]" (field_expression "param_1->e_ident_magic_str" (identifier "param_1") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (binary_expression "((uint)param_4 >> 1) - 1" (parenthesized_expression "((uint)param_4 >> 1)" (( "(") (binary_expression "(uint)param_4 >> 1" (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4")) (>> ">>") (number_literal "1")) () ")")) (- "-") (number_literal "1")) (] "]"))))) () ")")))) (; ";")) (expression_statement "iVar11 = 0x1f - (int)param_1;" (assignment_expression "iVar11 = 0x1f - (int)param_1" (identifier "iVar11") (= "=") (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 = pEVar30;" (assignment_expression "param_3 = pEVar30" (identifier "param_3") (= "=") (identifier "pEVar30")) (; ";")) (if_statement "if (iVar11 == 0) {\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }\n    }" ({ "{") (if_statement "if (pEVar32 == pEVar30) {\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }" (if "if") (parenthesized_expression "(pEVar32 == pEVar30)" (( "(") (binary_expression "pEVar32 == pEVar30" (identifier "pEVar32") (== "==") (identifier "pEVar30")) () ")")) (compound_statement "{\n        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;\n        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;\n        do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);\n        pcVar39 = *(code **)(puVar35 + -0x7b2c);\nLAB_00031d88:\n        pEVar18 = param_6;\n        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n      }" ({ "{") (expression_statement "pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;" (assignment_expression "pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1" (identifier "pcVar9") (= "=") (binary_expression "param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)pEVar32 * 4" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar32 * 4" (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;" (assignment_expression "iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4" (identifier "iVar11") (= "=") (binary_expression "*(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4" (pointer_expression "*(int *)(puVar37 + -0x4c)" (* "*") (cast_expression "(int *)(puVar37 + -0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x4c)" (( "(") (binary_expression "puVar37 + -0x4c" (identifier "puVar37") (+ "+") (number_literal "-0x4c")) () ")")))) (+ "+") (binary_expression "(int)pEVar32 * 4" (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32")) (* "*") (number_literal "4")))) (; ";")) (do_statement "do {\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        } while (puVar23 != (undefined1 *)0xffffffff);" (do "do") (compound_statement "{\n          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);\n          puVar23 = puVar23 + -1;\n          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }\n          pcVar9 = pcVar9 + -4;\n          iVar11 = iVar11 + -4;\n        }" ({ "{") (expression_statement "pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);" (assignment_expression "pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4)" (identifier "pEVar18") (= "=") (pointer_expression "*(Elf32_Ehdr **)(iVar11 + -4)" (* "*") (cast_expression "(Elf32_Ehdr **)(iVar11 + -4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -4)" (( "(") (binary_expression "iVar11 + -4" (identifier "iVar11") (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (expression_statement "puVar23 = puVar23 + -1;" (assignment_expression "puVar23 = puVar23 + -1" (identifier "puVar23") (= "=") (binary_expression "puVar23 + -1" (identifier "puVar23") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }" (if "if") (parenthesized_expression "(*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18)" (( "(") (binary_expression "*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18" (pointer_expression "*(Elf32_Ehdr **)(pcVar9 + -4)" (* "*") (cast_expression "(Elf32_Ehdr **)(pcVar9 + -4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + -4)" (( "(") (binary_expression "pcVar9 + -4" (identifier "pcVar9") (+ "+") (number_literal "-4")) () ")")))) (!= "!=") (identifier "pEVar18")) () ")")) (compound_statement "{\n            pcVar39 = *(code **)(puVar35 + -0x7b2c);\n            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;\n            goto LAB_000318d0;\n          }" ({ "{") (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7b2c);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7b2c)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(puVar35 + -0x7b2c)" (* "*") (cast_expression "(code **)(puVar35 + -0x7b2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7b2c)" (( "(") (binary_expression "puVar35 + -0x7b2c" (identifier "puVar35") (+ "+") (number_literal "-0x7b2c")) () ")"))))) (; ";")) (if_statement "if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;" (if "if") (parenthesized_expression "(pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4))" (( "(") (binary_expression "pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)" (identifier "pEVar18") (< "<") (pointer_expression "*(Elf32_Ehdr **)(pcVar9 + -4)" (* "*") (cast_expression "(Elf32_Ehdr **)(pcVar9 + -4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + -4)" (( "(") (binary_expression "pcVar9 + -4" (identifier "pcVar9") (+ "+") (number_literal "-4")) () ")"))))) () ")")) (goto_statement "goto LAB_00031d88;" (goto "goto") (statement_identifier "LAB_00031d88") (; ";"))) (goto_statement "goto LAB_000318d0;" (goto "goto") (statement_identifier "LAB_000318d0") (; ";")) (} "}"))) (expression_statement "pcVar9 = pcVar9 + -4;" (assignment_expression "pcVar9 = pcVar9 + -4" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + -4" (identifier "pcVar9") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "iVar11 = iVar11 + -4;" (assignment_expression "iVar11 = iVar11 + -4" (identifier "iVar11") (= "=") (binary_expression "iVar11 + -4" (identifier "iVar11") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar23 != (undefined1 *)0xffffffff)" (( "(") (binary_expression "puVar23 != (undefined1 *)0xffffffff" (identifier "puVar23") (!= "!=") (cast_expression "(undefined1 *)0xffffffff" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (; ";")) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7b2c);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7b2c)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(puVar35 + -0x7b2c)" (* "*") (cast_expression "(code **)(puVar35 + -0x7b2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7b2c)" (( "(") (binary_expression "puVar35 + -0x7b2c" (identifier "puVar35") (+ "+") (number_literal "-0x7b2c")) () ")"))))) (; ";")) (labeled_statement "LAB_00031d88:\n        pEVar18 = param_6;" (statement_identifier "LAB_00031d88") (: ":") (expression_statement "pEVar18 = param_6;" (assignment_expression "pEVar18 = param_6" (identifier "pEVar18") (= "=") (identifier "param_6")) (; ";"))) (expression_statement "(*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);" (call_expression "(*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30)" (parenthesized_expression "(*pcVar39)" (( "(") (pointer_expression "*pcVar39" (* "*") (identifier "pcVar39")) () ")")) (argument_list "(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30)" (( "(") (identifier "param_6") (, ",") (identifier "param_6") (, ",") (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x4c)" (( "(") (binary_expression "puVar37 + -0x4c" (identifier "puVar37") (+ "+") (number_literal "-0x4c")) () ")")))) (, ",") (identifier "pEVar30") () ")"))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }" (else "else") (compound_statement "{\n      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);\n      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;\n      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);\n      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;\n      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;\n      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;\n      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;\n      do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);\n      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);\n      pEVar30 = pEVar28;\n    }" ({ "{") (expression_statement "pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1)" (identifier "pEVar28") (= "=") (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")) () ")")))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar37 + 8) = param_4;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + 8) = param_4" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + 8)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + 8)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 8)" (( "(") (binary_expression "puVar37 + 8" (identifier "puVar37") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);" (assignment_expression "param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1)" (identifier "param_1") (= "=") (cast_expression "(Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)param_4 << ((uint)param_1 & 0x1f)) << 1)" (( "(") (binary_expression "((int)param_4 << ((uint)param_1 & 0x1f)) << 1" (parenthesized_expression "((int)param_4 << ((uint)param_1 & 0x1f))" (( "(") (binary_expression "(int)param_4 << ((uint)param_1 & 0x1f)" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (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 **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;" (assignment_expression "*(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1" (pointer_expression "*(char **)(puVar37 + -0x84)" (* "*") (cast_expression "(char **)(puVar37 + -0x84)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x84)" (( "(") (binary_expression "puVar37 + -0x84" (identifier "puVar37") (+ "+") (number_literal "-0x84")) () ")")))) (= "=") (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50)" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (pointer_expression "*(int *)(puVar37 + -0x50)" (* "*") (cast_expression "(int *)(puVar37 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")"))))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;" (assignment_expression "*(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44" (pointer_expression "*(undefined1 **)(puVar37 + -0x7c)" (* "*") (cast_expression "(undefined1 **)(puVar37 + -0x7c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x7c)" (( "(") (binary_expression "puVar37 + -0x7c" (identifier "puVar37") (+ "+") (number_literal "-0x7c")) () ")")))) (= "=") (binary_expression "puVar37 + -0x44" (identifier "puVar37") (+ "+") (number_literal "-0x44"))) (; ";")) (expression_statement "*(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;" (assignment_expression "*(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30" (pointer_expression "*(int *)(puVar37 + -0x80)" (* "*") (cast_expression "(int *)(puVar37 + -0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x80)" (( "(") (binary_expression "puVar37 + -0x80" (identifier "puVar37") (+ "+") (number_literal "-0x80")) () ")")))) (= "=") (binary_expression "*(int *)(puVar35 + -0x7fcc) + 0xf30" (pointer_expression "*(int *)(puVar35 + -0x7fcc)" (* "*") (cast_expression "(int *)(puVar35 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar35 + -0x7fcc)" (( "(") (binary_expression "puVar35 + -0x7fcc" (identifier "puVar35") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0xf30"))) (; ";")) (expression_statement "*(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;" (assignment_expression "*(undefined4 *)(puVar37 + -0x60) = 0x3fffffff" (pointer_expression "*(undefined4 *)(puVar37 + -0x60)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x60)" (( "(") (binary_expression "puVar37 + -0x60" (identifier "puVar37") (+ "+") (number_literal "-0x60")) () ")")))) (= "=") (number_literal "0x3fffffff")) (; ";")) (do_statement "do {\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      } while (iVar11 != 0);" (do "do") (compound_statement "{\n        pEVar18 = param_6;\n        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);\n        param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }\n        if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }\n        iVar11 = iVar11 + -1;\n        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);\n      }" ({ "{") (expression_statement "pEVar18 = param_6;" (assignment_expression "pEVar18 = param_6" (identifier "pEVar18") (= "=") (identifier "param_6")) (; ";")) (expression_statement "(**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);" (call_expression "(**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3)" (parenthesized_expression "(**(code **)(puVar35 + -0x7cac))" (( "(") (pointer_expression "**(code **)(puVar35 + -0x7cac)" (* "*") (pointer_expression "*(code **)(puVar35 + -0x7cac)" (* "*") (cast_expression "(code **)(puVar35 + -0x7cac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7cac)" (( "(") (binary_expression "puVar35 + -0x7cac" (identifier "puVar35") (+ "+") (number_literal "-0x7cac")) () ")"))))) () ")")) (argument_list "(pEVar20,param_6,param_3)" (( "(") (identifier "pEVar20") (, ",") (identifier "param_6") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));" (assignment_expression "param_3 = (Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" (identifier "param_3") (= "=") (cast_expression "(Elf32_Ehdr *)\n                  ((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" (( "(") (binary_expression "(int)param_3 * 2 -\n                  (uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -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 *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" (( "(") (binary_expression "*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1)" (* "*") (cast_expression "(int *)(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1)" (( "(") (binary_expression "pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1" (binary_expression "pEVar20->e_ident_magic_str +\n                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4" (parenthesized_expression "((int)param_3 * 2 + *(int *)(puVar37 + -0x60))" (( "(") (binary_expression "(int)param_3 * 2 + *(int *)(puVar37 + -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 *)(puVar37 + -0x60)" (* "*") (cast_expression "(int *)(puVar37 + -0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x60)" (( "(") (binary_expression "puVar37 + -0x60" (identifier "puVar37") (+ "+") (number_literal "-0x60")) () ")"))))) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (== "==") (number_literal "0")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (if_statement "if ((int)param_3 < (int)pEVar32) {\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }\n        else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }" (if "if") (parenthesized_expression "((int)param_3 < (int)pEVar32)" (( "(") (binary_expression "(int)param_3 < (int)pEVar32" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32"))) () ")")) (compound_statement "{\n          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n          if (param_3 != (Elf32_Ehdr *)0x0) {\n            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n        }" ({ "{") (expression_statement "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" (identifier "puVar10") (= "=") (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            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\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            uVar22._0_1_ = pEVar20->e_ident_magic_num;\n            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];\n            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];\n            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];\n            pEVar27 = param_6;\n            if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }\n            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar22;\n          }" ({ "{") (expression_statement "uVar22._0_1_ = pEVar20->e_ident_magic_num;" (assignment_expression "uVar22._0_1_ = pEVar20->e_ident_magic_num" (field_expression "uVar22._0_1_" (identifier "uVar22") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar20->e_ident_magic_num" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar22._1_1_ = pEVar20->e_ident_magic_str[0];" (assignment_expression "uVar22._1_1_ = pEVar20->e_ident_magic_str[0]" (field_expression "uVar22._1_1_" (identifier "uVar22") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar20->e_ident_magic_str[0]" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar22._2_1_ = pEVar20->e_ident_magic_str[1];" (assignment_expression "uVar22._2_1_ = pEVar20->e_ident_magic_str[1]" (field_expression "uVar22._2_1_" (identifier "uVar22") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar20->e_ident_magic_str[1]" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar22._3_1_ = pEVar20->e_ident_magic_str[2];" (assignment_expression "uVar22._3_1_ = pEVar20->e_ident_magic_str[2]" (field_expression "uVar22._3_1_" (identifier "uVar22") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_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 "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" (identifier "pEVar27") (= "=") (identifier "param_6")) (; ";")) (if_statement "if (puVar10 != (undefined1 *)0x0) {\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }" (if "if") (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar10 != (undefined1 *)0x0" (identifier "puVar10") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              pbVar12 = &pEVar20->e_ident_class;\n              do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);\n              pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);\n            }" ({ "{") (expression_statement "pbVar12 = &pEVar20->e_ident_class;" (assignment_expression "pbVar12 = &pEVar20->e_ident_class" (identifier "pbVar12") (= "=") (pointer_expression "&pEVar20->e_ident_class" (& "&") (field_expression "pEVar20->e_ident_class" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_class")))) (; ";")) (do_statement "do {\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              } while (puVar10 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n                pEVar27->e_ident_magic_str[2] = (char)uVar22;\n                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                puVar10 = puVar10 + -1;\n                uVar22 = *(undefined4 *)pbVar12;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pbVar12 = (byte *)pEVar18;\n              }" ({ "{") (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar22 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar22 >> 0x18)" (( "(") (binary_expression "(uint)uVar22 >> 0x18" (cast_expression "(uint)uVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar22")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10)" (subscript_expression "pEVar27->e_ident_magic_str[0]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar22 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar22 >> 0x10)" (( "(") (binary_expression "(uint)uVar22 >> 0x10" (cast_expression "(uint)uVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar22")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8)" (subscript_expression "pEVar27->e_ident_magic_str[1]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar22 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar22 >> 8)" (( "(") (binary_expression "(uint)uVar22 >> 8" (cast_expression "(uint)uVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar22")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar22;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar22" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar22" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar22"))) (; ";")) (expression_statement "pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4)" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)(pbVar12 + 4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar12 + 4)" (( "(") (binary_expression "pbVar12 + 4" (identifier "pbVar12") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + -1" (identifier "puVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar22 = *(undefined4 *)pbVar12;" (assignment_expression "uVar22 = *(undefined4 *)pbVar12" (identifier "uVar22") (= "=") (pointer_expression "*(undefined4 *)pbVar12" (* "*") (cast_expression "(undefined4 *)pbVar12" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar12")))) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar27->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar27->e_ident_class" (& "&") (field_expression "pEVar27->e_ident_class" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pbVar12 = (byte *)pEVar18;" (assignment_expression "pbVar12 = (byte *)pEVar18" (identifier "pbVar12") (= "=") (cast_expression "(byte *)pEVar18" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar18"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar10 != (undefined1 *)0x0" (identifier "puVar10") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5)" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)\n                        (param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -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 *)(puVar37 + -0x60) * 4 + -5)" (( "(") (binary_expression "param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5" (binary_expression "param_6->e_ident_magic_str +\n                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -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 *)(puVar37 + -0x60) * 4" (pointer_expression "*(int *)(puVar37 + -0x60)" (* "*") (cast_expression "(int *)(puVar37 + -0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x60)" (( "(") (binary_expression "puVar37 + -0x60" (identifier "puVar37") (+ "+") (number_literal "-0x60")) () ")")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "-5")) () ")")))) (; ";")) (} "}"))) (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar22 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar22 >> 0x18)" (( "(") (binary_expression "(uint)uVar22 >> 0x18" (cast_expression "(uint)uVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar22")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10)" (subscript_expression "pEVar27->e_ident_magic_str[0]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar22 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar22 >> 0x10)" (( "(") (binary_expression "(uint)uVar22 >> 0x10" (cast_expression "(uint)uVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar22")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8)" (subscript_expression "pEVar27->e_ident_magic_str[1]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar22 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar22 >> 8)" (( "(") (binary_expression "(uint)uVar22 >> 8" (cast_expression "(uint)uVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar22")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar22;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar22" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar22" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar22"))) (; ";")) (} "}"))) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7d8c);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7d8c)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(puVar35 + -0x7d8c)" (* "*") (cast_expression "(code **)(puVar35 + -0x7d8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7d8c)" (( "(") (binary_expression "puVar35 + -0x7d8c" (identifier "puVar35") (+ "+") (number_literal "-0x7d8c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }" (else "else") (compound_statement "{\n          uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n          pcVar39 = *(code **)(puVar37 + -0x80);\n          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          uVar25._0_1_ = pEVar20->e_ident_magic_num;\n          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];\n          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];\n          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];\n          if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }\n          pcVar39 = *(code **)(puVar35 + -0x7d8c);\n          pEVar18 = param_3;\n          param_3 = pEVar32;\n        }" ({ "{") (expression_statement "uVar25 = *(undefined4 *)(puVar37 + -0x4c);" (assignment_expression "uVar25 = *(undefined4 *)(puVar37 + -0x4c)" (identifier "uVar25") (= "=") (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x4c)" (( "(") (binary_expression "puVar37 + -0x4c" (identifier "puVar37") (+ "+") (number_literal "-0x4c")) () ")"))))) (; ";")) (expression_statement "pcVar39 = *(code **)(puVar37 + -0x80);" (assignment_expression "pcVar39 = *(code **)(puVar37 + -0x80)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(puVar37 + -0x80)" (* "*") (cast_expression "(code **)(puVar37 + -0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x80)" (( "(") (binary_expression "puVar37 + -0x80" (identifier "puVar37") (+ "+") (number_literal "-0x80")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -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 *)(puVar37 + -0x74)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x74)" (( "(") (binary_expression "puVar37 + -0x74" (identifier "puVar37") (+ "+") (number_literal "-0x74")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);" (assignment_expression "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c)" (pointer_expression "*(undefined4 *)(puVar3 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar3 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x10)" (( "(") (binary_expression "puVar3 + 0x10" (identifier "puVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar37 + -0x7c)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x7c)" (( "(") (binary_expression "puVar37 + -0x7c" (identifier "puVar37") (+ "+") (number_literal "-0x7c")) () ")"))))) (; ";")) (expression_statement "(*pcVar39)(pEVar20,param_3,uVar25,pEVar32);" (call_expression "(*pcVar39)(pEVar20,param_3,uVar25,pEVar32)" (parenthesized_expression "(*pcVar39)" (( "(") (pointer_expression "*pcVar39" (* "*") (identifier "pcVar39")) () ")")) (argument_list "(pEVar20,param_3,uVar25,pEVar32)" (( "(") (identifier "pEVar20") (, ",") (identifier "param_3") (, ",") (identifier "uVar25") (, ",") (identifier "pEVar32") () ")"))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "uVar25._0_1_ = pEVar20->e_ident_magic_num;" (assignment_expression "uVar25._0_1_ = pEVar20->e_ident_magic_num" (field_expression "uVar25._0_1_" (identifier "uVar25") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar20->e_ident_magic_num" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar25._1_1_ = pEVar20->e_ident_magic_str[0];" (assignment_expression "uVar25._1_1_ = pEVar20->e_ident_magic_str[0]" (field_expression "uVar25._1_1_" (identifier "uVar25") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar20->e_ident_magic_str[0]" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar25._2_1_ = pEVar20->e_ident_magic_str[1];" (assignment_expression "uVar25._2_1_ = pEVar20->e_ident_magic_str[1]" (field_expression "uVar25._2_1_" (identifier "uVar25") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar20->e_ident_magic_str[1]" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar25._3_1_ = pEVar20->e_ident_magic_str[2];" (assignment_expression "uVar25._3_1_ = pEVar20->e_ident_magic_str[2]" (field_expression "uVar25._3_1_" (identifier "uVar25") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_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") (] "]"))) (; ";")) (if_statement "if (pEVar28 == (Elf32_Ehdr *)0x0) {\n            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }\n          else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\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            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            param_6->e_ident_magic_str[2] = (char)uVar25;\n          }" ({ "{") (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "param_6->e_ident_magic_num" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar25 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar25 >> 0x18)" (( "(") (binary_expression "(uint)uVar25 >> 0x18" (cast_expression "(uint)uVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar25")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 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)uVar25 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar25 >> 0x10)" (( "(") (binary_expression "(uint)uVar25 >> 0x10" (cast_expression "(uint)uVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar25")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 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)uVar25 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar25 >> 8)" (( "(") (binary_expression "(uint)uVar25 >> 8" (cast_expression "(uint)uVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar25")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "param_6->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar25" (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)uVar25" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar25"))) (; ";")) (} "}")) (else_clause "else {\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }" (else "else") (compound_statement "{\n            pEVar18 = pEVar28;\n            pEVar27 = param_6;\n            pbVar12 = &pEVar20->e_ident_class;\n            do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);\n            **(undefined4 **)(puVar37 + -0x84) = uVar25;\n          }" ({ "{") (expression_statement "pEVar18 = pEVar28;" (assignment_expression "pEVar18 = pEVar28" (identifier "pEVar18") (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" (identifier "pEVar27") (= "=") (identifier "param_6")) (; ";")) (expression_statement "pbVar12 = &pEVar20->e_ident_class;" (assignment_expression "pbVar12 = &pEVar20->e_ident_class" (identifier "pbVar12") (= "=") (pointer_expression "&pEVar20->e_ident_class" (& "&") (field_expression "pEVar20->e_ident_class" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_class")))) (; ";")) (do_statement "do {\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            } while (pEVar18 != (Elf32_Ehdr *)0x0);" (do "do") (compound_statement "{\n              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n              pEVar27->e_ident_magic_str[2] = (char)uVar25;\n              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);\n              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);\n              uVar25 = *(undefined4 *)pbVar12;\n              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              pbVar12 = (byte *)param_3;\n            }" ({ "{") (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar25 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar25 >> 0x18)" (( "(") (binary_expression "(uint)uVar25 >> 0x18" (cast_expression "(uint)uVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar25")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10)" (subscript_expression "pEVar27->e_ident_magic_str[0]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar25 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar25 >> 0x10)" (( "(") (binary_expression "(uint)uVar25 >> 0x10" (cast_expression "(uint)uVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar25")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8)" (subscript_expression "pEVar27->e_ident_magic_str[1]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar25 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar25 >> 8)" (( "(") (binary_expression "(uint)uVar25 >> 8" (cast_expression "(uint)uVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar25")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar25" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar25" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar25"))) (; ";")) (expression_statement "param_3 = (Elf32_Ehdr *)(pbVar12 + 4);" (assignment_expression "param_3 = (Elf32_Ehdr *)(pbVar12 + 4)" (identifier "param_3") (= "=") (cast_expression "(Elf32_Ehdr *)(pbVar12 + 4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar12 + 4)" (( "(") (binary_expression "pbVar12 + 4" (identifier "pbVar12") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1)" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar18[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar18[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar18[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar18[-1].e_shstrndx" (& "&") (field_expression "pEVar18[-1].e_shstrndx" (subscript_expression "pEVar18[-1]" (identifier "pEVar18") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar25 = *(undefined4 *)pbVar12;" (assignment_expression "uVar25 = *(undefined4 *)pbVar12" (identifier "uVar25") (= "=") (pointer_expression "*(undefined4 *)pbVar12" (* "*") (cast_expression "(undefined4 *)pbVar12" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar12")))) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar27->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar27->e_ident_class" (& "&") (field_expression "pEVar27->e_ident_class" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pbVar12 = (byte *)param_3;" (assignment_expression "pbVar12 = (byte *)param_3" (identifier "pbVar12") (= "=") (cast_expression "(byte *)param_3" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pEVar18 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar18 != (Elf32_Ehdr *)0x0" (identifier "pEVar18") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "**(undefined4 **)(puVar37 + -0x84) = uVar25;" (assignment_expression "**(undefined4 **)(puVar37 + -0x84) = uVar25" (pointer_expression "**(undefined4 **)(puVar37 + -0x84)" (* "*") (pointer_expression "*(undefined4 **)(puVar37 + -0x84)" (* "*") (cast_expression "(undefined4 **)(puVar37 + -0x84)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x84)" (( "(") (binary_expression "puVar37 + -0x84" (identifier "puVar37") (+ "+") (number_literal "-0x84")) () ")"))))) (= "=") (identifier "uVar25")) (; ";")) (} "}")))) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7d8c);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7d8c)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(puVar35 + -0x7d8c)" (* "*") (cast_expression "(code **)(puVar35 + -0x7d8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7d8c)" (( "(") (binary_expression "puVar35 + -0x7d8c" (identifier "puVar35") (+ "+") (number_literal "-0x7d8c")) () ")"))))) (; ";")) (expression_statement "pEVar18 = param_3;" (assignment_expression "pEVar18 = param_3" (identifier "pEVar18") (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" (identifier "param_3") (= "=") (identifier "pEVar32")) (; ";")) (} "}")))) (if_statement "if ((int)param_1 < 0) {\n          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\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          uVar25 = *(undefined4 *)(puVar37 + -100);\n          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;\n          pEVar18 = param_6;\n          (*pcVar39)(pEVar20,param_6,param_3,uVar25);\n          param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }\n        }" ({ "{") (expression_statement "uVar25 = *(undefined4 *)(puVar37 + -100);" (assignment_expression "uVar25 = *(undefined4 *)(puVar37 + -100)" (identifier "uVar25") (= "=") (pointer_expression "*(undefined4 *)(puVar37 + -100)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -100)" (( "(") (binary_expression "puVar37 + -100" (identifier "puVar37") (+ "+") (number_literal "-100")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30" (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 "pEVar30")) (; ";")) (expression_statement "pEVar18 = param_6;" (assignment_expression "pEVar18 = param_6" (identifier "pEVar18") (= "=") (identifier "param_6")) (; ";")) (expression_statement "(*pcVar39)(pEVar20,param_6,param_3,uVar25);" (call_expression "(*pcVar39)(pEVar20,param_6,param_3,uVar25)" (parenthesized_expression "(*pcVar39)" (( "(") (pointer_expression "*pcVar39" (* "*") (identifier "pcVar39")) () ")")) (argument_list "(pEVar20,param_6,param_3,uVar25)" (( "(") (identifier "pEVar20") (, ",") (identifier "param_6") (, ",") (identifier "param_3") (, ",") (identifier "uVar25") () ")"))) (; ";")) (expression_statement "param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));" (assignment_expression "param_3 = (Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" (identifier "param_3") (= "=") (cast_expression "(Elf32_Ehdr *)\n                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0))" (( "(") (binary_expression "pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +\n                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" (binary_expression "pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2)" (field_expression "pEVar30->e_ident_magic_str" (identifier "pEVar30") (-> "->") (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 *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" (- "-") (call_expression "(uint)(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0)" (( "(") (binary_expression "*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1)" (* "*") (cast_expression "(int *)(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1)" (( "(") (binary_expression "pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4 + -1" (binary_expression "pEVar20->e_ident_magic_str +\n                                    (int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)) * 4" (cast_expression "(int)(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60))" (( "(") (binary_expression "pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2) +\n                                         *(int *)(puVar37 + -0x60)" (binary_expression "pEVar30->e_ident_magic_str +\n                                          (int)(param_3->e_ident_magic_str + -2)" (field_expression "pEVar30->e_ident_magic_str" (identifier "pEVar30") (-> "->") (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 *)(puVar37 + -0x60)" (* "*") (cast_expression "(int *)(puVar37 + -0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x60)" (( "(") (binary_expression "puVar37 + -0x60" (identifier "puVar37") (+ "+") (number_literal "-0x60")) () ")"))))) () ")"))) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (== "==") (number_literal "0")) () ")"))))) () ")")))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (if_statement "if ((int)param_3 < (int)pEVar32) {\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }\n          else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }" (if "if") (parenthesized_expression "((int)param_3 < (int)pEVar32)" (( "(") (binary_expression "(int)param_3 < (int)pEVar32" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32"))) () ")")) (compound_statement "{\n            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n            if (param_3 != (Elf32_Ehdr *)0x0) {\n              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }\n          }" ({ "{") (expression_statement "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" (identifier "puVar10") (= "=") (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_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\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              uVar24._0_1_ = pEVar20->e_ident_magic_num;\n              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];\n              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];\n              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];\n              if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }\n            }" ({ "{") (expression_statement "uVar24._0_1_ = pEVar20->e_ident_magic_num;" (assignment_expression "uVar24._0_1_ = pEVar20->e_ident_magic_num" (field_expression "uVar24._0_1_" (identifier "uVar24") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar20->e_ident_magic_num" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar24._1_1_ = pEVar20->e_ident_magic_str[0];" (assignment_expression "uVar24._1_1_ = pEVar20->e_ident_magic_str[0]" (field_expression "uVar24._1_1_" (identifier "uVar24") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar20->e_ident_magic_str[0]" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar24._2_1_ = pEVar20->e_ident_magic_str[1];" (assignment_expression "uVar24._2_1_ = pEVar20->e_ident_magic_str[1]" (field_expression "uVar24._2_1_" (identifier "uVar24") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar20->e_ident_magic_str[1]" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar24._3_1_ = pEVar20->e_ident_magic_str[2];" (assignment_expression "uVar24._3_1_ = pEVar20->e_ident_magic_str[2]" (field_expression "uVar24._3_1_" (identifier "uVar24") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_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") (] "]"))) (; ";")) (if_statement "if (puVar10 == (undefined1 *)0x0) {\n                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }\n              else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }" (if "if") (parenthesized_expression "(puVar10 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar10 == (undefined1 *)0x0" (identifier "puVar10") (== "==") (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)uVar24 >> 0x18);\n                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                param_6->e_ident_magic_str[2] = (char)uVar24;\n              }" ({ "{") (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "param_6->e_ident_magic_num" (identifier "param_6") (-> "->") (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 "param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 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)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 "param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 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)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 "param_6->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar24" (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)uVar24" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar24"))) (; ";")) (} "}")) (else_clause "else {\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }" (else "else") (compound_statement "{\n                pEVar27 = param_6;\n                pbVar12 = &pEVar20->e_ident_class;\n                do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;\n              }" ({ "{") (expression_statement "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" (identifier "pEVar27") (= "=") (identifier "param_6")) (; ";")) (expression_statement "pbVar12 = &pEVar20->e_ident_class;" (assignment_expression "pbVar12 = &pEVar20->e_ident_class" (identifier "pbVar12") (= "=") (pointer_expression "&pEVar20->e_ident_class" (& "&") (field_expression "pEVar20->e_ident_class" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_class")))) (; ";")) (do_statement "do {\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                } while (puVar10 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n                  pEVar27->e_ident_magic_str[2] = (char)uVar24;\n                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);\n                  puVar10 = puVar10 + -1;\n                  uVar24 = *(undefined4 *)pbVar12;\n                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                  pbVar12 = (byte *)pEVar18;\n                }" ({ "{") (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" (identifier "pEVar27") (-> "->") (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 "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10)" (subscript_expression "pEVar27->e_ident_magic_str[0]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (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 "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8)" (subscript_expression "pEVar27->e_ident_magic_str[1]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (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 "pEVar27->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar24" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar24" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar24"))) (; ";")) (expression_statement "pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4)" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)(pbVar12 + 4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar12 + 4)" (( "(") (binary_expression "pbVar12 + 4" (identifier "pbVar12") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + -1" (identifier "puVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar24 = *(undefined4 *)pbVar12;" (assignment_expression "uVar24 = *(undefined4 *)pbVar12" (identifier "uVar24") (= "=") (pointer_expression "*(undefined4 *)pbVar12" (* "*") (cast_expression "(undefined4 *)pbVar12" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar12")))) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar27->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar27->e_ident_class" (& "&") (field_expression "pEVar27->e_ident_class" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pbVar12 = (byte *)pEVar18;" (assignment_expression "pbVar12 = (byte *)pEVar18" (identifier "pbVar12") (= "=") (cast_expression "(byte *)pEVar18" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar18"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar10 != (undefined1 *)0x0" (identifier "puVar10") (!= "!=") (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 *)(puVar37 + -0x60) * 4 + -5) = uVar24;" (assignment_expression "*(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24" (pointer_expression "*(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5)" (* "*") (cast_expression "(undefined4 *)\n                 (param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -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 *)(puVar37 + -0x60) * 4 + -5)" (( "(") (binary_expression "param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5" (binary_expression "param_6->e_ident_magic_str +\n                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -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 *)(puVar37 + -0x60) * 4" (pointer_expression "*(int *)(puVar37 + -0x60)" (* "*") (cast_expression "(int *)(puVar37 + -0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x60)" (( "(") (binary_expression "puVar37 + -0x60" (identifier "puVar37") (+ "+") (number_literal "-0x60")) () ")")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "-5")) () ")")))) (= "=") (identifier "uVar24")) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }" (else "else") (compound_statement "{\n            uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n            pcVar39 = *(code **)(puVar37 + -0x80);\n            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);\n            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);\n            puVar35 = *(undefined **)(puVar37 + -0x90);\n            pEVar18 = *(Elf32_Ehdr **)pEVar20;\n            pEVar29 = pEVar28;\n            pEVar5 = param_6;\n            pEVar27 = pEVar20;\n            if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }\n          }" ({ "{") (expression_statement "uVar25 = *(undefined4 *)(puVar37 + -0x4c);" (assignment_expression "uVar25 = *(undefined4 *)(puVar37 + -0x4c)" (identifier "uVar25") (= "=") (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x4c)" (( "(") (binary_expression "puVar37 + -0x4c" (identifier "puVar37") (+ "+") (number_literal "-0x4c")) () ")"))))) (; ";")) (expression_statement "pcVar39 = *(code **)(puVar37 + -0x80);" (assignment_expression "pcVar39 = *(code **)(puVar37 + -0x80)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(puVar37 + -0x80)" (* "*") (cast_expression "(code **)(puVar37 + -0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x80)" (( "(") (binary_expression "puVar37 + -0x80" (identifier "puVar37") (+ "+") (number_literal "-0x80")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -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 *)(puVar37 + -0x74)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x74)" (( "(") (binary_expression "puVar37 + -0x74" (identifier "puVar37") (+ "+") (number_literal "-0x74")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);" (assignment_expression "*(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c)" (pointer_expression "*(undefined4 *)(puVar3 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar3 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x10)" (( "(") (binary_expression "puVar3 + 0x10" (identifier "puVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar37 + -0x7c)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x7c)" (( "(") (binary_expression "puVar37 + -0x7c" (identifier "puVar37") (+ "+") (number_literal "-0x7c")) () ")"))))) (; ";")) (expression_statement "(*pcVar39)(pEVar20,param_3,uVar25,pEVar32);" (call_expression "(*pcVar39)(pEVar20,param_3,uVar25,pEVar32)" (parenthesized_expression "(*pcVar39)" (( "(") (pointer_expression "*pcVar39" (* "*") (identifier "pcVar39")) () ")")) (argument_list "(pEVar20,param_3,uVar25,pEVar32)" (( "(") (identifier "pEVar20") (, ",") (identifier "param_3") (, ",") (identifier "uVar25") (, ",") (identifier "pEVar32") () ")"))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "pEVar18 = *(Elf32_Ehdr **)pEVar20;" (assignment_expression "pEVar18 = *(Elf32_Ehdr **)pEVar20" (identifier "pEVar18") (= "=") (pointer_expression "*(Elf32_Ehdr **)pEVar20" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar20" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar20")))) (; ";")) (expression_statement "pEVar29 = pEVar28;" (assignment_expression "pEVar29 = pEVar28" (identifier "pEVar29") (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "pEVar5 = param_6;" (assignment_expression "pEVar5 = param_6" (identifier "pEVar5") (= "=") (identifier "param_6")) (; ";")) (expression_statement "pEVar27 = pEVar20;" (assignment_expression "pEVar27 = pEVar20" (identifier "pEVar27") (= "=") (identifier "pEVar20")) (; ";")) (if_statement "if (pEVar28 == (Elf32_Ehdr *)0x0) {\n              *(Elf32_Ehdr **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\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 **)param_6 = pEVar18;\n              param_3 = pEVar32;\n            }" ({ "{") (expression_statement "*(Elf32_Ehdr **)param_6 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)param_6 = pEVar18" (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 "pEVar18")) (; ";")) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" (identifier "param_3") (= "=") (identifier "pEVar32")) (; ";")) (} "}")) (else_clause "else {\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }" (else "else") (compound_statement "{\n              do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);\n              **(undefined4 **)(puVar37 + -0x84) = pEVar18;\n              param_3 = pEVar32;\n            }" ({ "{") (do_statement "do {\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              } while (pEVar29 != (Elf32_Ehdr *)0x0);" (do "do") (compound_statement "{\n                *(Elf32_Ehdr **)pEVar5 = pEVar18;\n                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);\n                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n              }" ({ "{") (expression_statement "*(Elf32_Ehdr **)pEVar5 = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)pEVar5 = pEVar18" (pointer_expression "*(Elf32_Ehdr **)pEVar5" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar5" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar5"))) (= "=") (identifier "pEVar18")) (; ";")) (expression_statement "pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1)" (identifier "pEVar29") (= "=") (cast_expression "(Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar29[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar29[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar29[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar29[-1].e_shstrndx" (& "&") (field_expression "pEVar29[-1].e_shstrndx" (subscript_expression "pEVar29[-1]" (identifier "pEVar29") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;" (assignment_expression "pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class" (identifier "pEVar18") (= "=") (pointer_expression "*(Elf32_Ehdr **)&pEVar27->e_ident_class" (* "*") (cast_expression "(Elf32_Ehdr **)&pEVar27->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&pEVar27->e_ident_class" (& "&") (field_expression "pEVar27->e_ident_class" (identifier "pEVar27") (-> "->") (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"))))) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar27->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar27->e_ident_class" (& "&") (field_expression "pEVar27->e_ident_class" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pEVar29 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar29 != (Elf32_Ehdr *)0x0" (identifier "pEVar29") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "**(undefined4 **)(puVar37 + -0x84) = pEVar18;" (assignment_expression "**(undefined4 **)(puVar37 + -0x84) = pEVar18" (pointer_expression "**(undefined4 **)(puVar37 + -0x84)" (* "*") (pointer_expression "*(undefined4 **)(puVar37 + -0x84)" (* "*") (cast_expression "(undefined4 **)(puVar37 + -0x84)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x84)" (( "(") (binary_expression "puVar37 + -0x84" (identifier "puVar37") (+ "+") (number_literal "-0x84")) () ")"))))) (= "=") (identifier "pEVar18")) (; ";")) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" (identifier "param_3") (= "=") (identifier "pEVar32")) (; ";")) (} "}")))) (} "}")))) (} "}"))) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (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 "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "param_4 = *(Elf32_Ehdr **)(puVar37 + 8);" (assignment_expression "param_4 = *(Elf32_Ehdr **)(puVar37 + 8)" (identifier "param_4") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar37 + 8)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + 8)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 8)" (( "(") (binary_expression "puVar37 + 8" (identifier "puVar37") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pEVar30 = pEVar28;" (assignment_expression "pEVar30 = pEVar28" (identifier "pEVar30") (= "=") (identifier "pEVar28")) (; ";")) (} "}")))) (labeled_statement "LAB_000318d0:\n    pEVar28 = (Elf32_Ehdr *)0x0;" (statement_identifier "LAB_000318d0") (: ":") (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"))) (; ";"))) (expression_statement "pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c)" (identifier "pEVar27") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x6c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x6c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x6c)" (( "(") (binary_expression "puVar37 + -0x6c" (identifier "puVar37") (+ "+") (number_literal "-0x6c")) () ")"))))) (; ";")) (if_statement "if (pEVar27 == (Elf32_Ehdr *)0x0) {\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }\n    else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }" (if "if") (parenthesized_expression "(pEVar27 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar27 == (Elf32_Ehdr *)0x0" (identifier "pEVar27") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      piVar14 = *(int **)(puVar37 + -0x54);\n      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }\n      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      pEVar18 = *(Elf32_Ehdr **)param_6;\n      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);\n      puVar4 = puVar21;\n      pEVar27 = param_6;\n      if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }\n      *puVar21 = pEVar18;\n    }" ({ "{") (labeled_statement "LAB_000318dc:\n      if ((0 < (int)param_3) &&\n         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {\n        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }" (statement_identifier "LAB_000318dc") (: ":") (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        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 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        pcVar9 = 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 0);\n      }" ({ "{") (expression_statement "pcVar9 = param_6->e_ident_magic_str + (int)param_3 * 4 + -1;" (assignment_expression "pcVar9 = param_6->e_ident_magic_str + (int)param_3 * 4 + -1" (identifier "pcVar9") (= "=") (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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -4;\n        } while (*piVar14 == 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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }\n          piVar14 = (int *)(pcVar9 + -8);\n          pcVar9 = pcVar9 + -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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\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            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n            piVar14 = *(int **)(puVar37 + -0x54);\n            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;\n            goto LAB_00031a08;\n          }" ({ "{") (expression_statement "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1)" (identifier "pEVar29") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)param_4 & 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)param_4 & 1)" (( "(") (binary_expression "(uint)param_4 & 1" (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4")) (& "&") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar14 = *(int **)(puVar37 + -0x54);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(puVar37 + -0x54)" (* "*") (cast_expression "(int **)(puVar37 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (if_statement "if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))\n            goto LAB_00031934;" (if "if") (parenthesized_expression "((pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))" (( "(") (binary_expression "(pEVar29 == (Elf32_Ehdr *)0x0) ||\n               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))" (parenthesized_expression "(pEVar29 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar29 == (Elf32_Ehdr *)0x0" (identifier "pEVar29") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))" (( "(") (comma_expression "piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(puVar37 + -0x54)" (* "*") (cast_expression "(int **)(puVar37 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")"))))) (, ",") (binary_expression "-1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(*(int *)(puVar37 + -0x5c) + 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar37 + -0x5c) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar37 + -0x5c) + 4)" (( "(") (binary_expression "*(int *)(puVar37 + -0x5c) + 4" (pointer_expression "*(int *)(puVar37 + -0x5c)" (* "*") (cast_expression "(int *)(puVar37 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x5c)" (( "(") (binary_expression "puVar37 + -0x5c" (identifier "puVar37") (+ "+") (number_literal "-0x5c")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) () ")"))) () ")")) (goto_statement "goto LAB_00031934;" (goto "goto") (statement_identifier "LAB_00031934") (; ";"))) (goto_statement "goto LAB_00031a08;" (goto "goto") (statement_identifier "LAB_00031a08") (; ";")) (} "}"))) (expression_statement "piVar14 = (int *)(pcVar9 + -8);" (assignment_expression "piVar14 = (int *)(pcVar9 + -8)" (identifier "piVar14") (= "=") (cast_expression "(int *)(pcVar9 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + -8)" (( "(") (binary_expression "pcVar9 + -8" (identifier "pcVar9") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "pcVar9 = pcVar9 + -4;" (assignment_expression "pcVar9 = pcVar9 + -4" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + -4" (identifier "pcVar9") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar14 == 0)" (( "(") (binary_expression "*piVar14 == 0" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (== "==") (number_literal "0")) () ")")) (; ";")) (} "}")))) (expression_statement "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1)" (identifier "pEVar29") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)param_4 & 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)param_4 & 1)" (( "(") (binary_expression "(uint)param_4 & 1" (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4")) (& "&") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar14 = *(int **)(puVar37 + -0x54);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(puVar37 + -0x54)" (* "*") (cast_expression "(int **)(puVar37 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (if_statement "if ((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }\n      else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }" (if "if") (parenthesized_expression "((pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))" (( "(") (binary_expression "(pEVar29 == (Elf32_Ehdr *)0x0) ||\n         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))" (parenthesized_expression "(pEVar29 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar29 == (Elf32_Ehdr *)0x0" (identifier "pEVar29") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))" (( "(") (comma_expression "piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(puVar37 + -0x54)" (* "*") (cast_expression "(int **)(puVar37 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")"))))) (, ",") (binary_expression "-1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(*(int *)(puVar37 + -0x5c) + 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar37 + -0x5c) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar37 + -0x5c) + 4)" (( "(") (binary_expression "*(int *)(puVar37 + -0x5c) + 4" (pointer_expression "*(int *)(puVar37 + -0x5c)" (* "*") (cast_expression "(int *)(puVar37 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x5c)" (( "(") (binary_expression "puVar37 + -0x5c" (identifier "puVar37") (+ "+") (number_literal "-0x5c")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) () ")"))) () ")")) (compound_statement "{\nLAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);\n        if (*piVar14 < (int)param_3) goto LAB_00031fa0;\nLAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;\n      }" ({ "{") (labeled_statement "LAB_00031934:\n        pcVar39 = *(code **)(puVar35 + -0x7a80);" (statement_identifier "LAB_00031934") (: ":") (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7a80);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7a80)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(puVar35 + -0x7a80)" (* "*") (cast_expression "(code **)(puVar35 + -0x7a80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7a80)" (( "(") (binary_expression "puVar35 + -0x7a80" (identifier "puVar35") (+ "+") (number_literal "-0x7a80")) () ")"))))) (; ";"))) (if_statement "if (*piVar14 < (int)param_3) goto LAB_00031fa0;" (if "if") (parenthesized_expression "(*piVar14 < (int)param_3)" (( "(") (binary_expression "*piVar14 < (int)param_3" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (< "<") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (goto_statement "goto LAB_00031fa0;" (goto "goto") (statement_identifier "LAB_00031fa0") (; ";"))) (labeled_statement "LAB_00031944:\n        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);" (statement_identifier "LAB_00031944") (: ":") (expression_statement "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1)" (identifier "pEVar29") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)param_4 & 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)param_4 & 1)" (( "(") (binary_expression "(uint)param_4 & 1" (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4")) (& "&") (number_literal "1")) () ")")))) (; ";"))) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar37 + -0x54) + 4)" (( "(") (binary_expression "*(int *)(puVar37 + -0x54) + 4" (pointer_expression "*(int *)(puVar37 + -0x54)" (* "*") (cast_expression "(int *)(puVar37 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (if_statement "if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;" (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_00031994;" (goto "goto") (statement_identifier "LAB_00031994") (; ";"))) (} "}")) (else_clause "else {\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }" (else "else") (compound_statement "{\n        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;\n        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);\n        pEVar18 = param_1;\n        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        pEVar28 = param_3;\n        if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);\n        iVar11._0_1_ = pEVar28->e_ident_magic_num;\n        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];\n        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];\n        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];\n        if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }\n        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n        if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }\n        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;\n      }" ({ "{") (if_statement "if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;" (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_00031a04;" (goto "goto") (statement_identifier "LAB_00031a04") (; ";"))) (expression_statement "param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8)" (identifier "param_1") (= "=") (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar37 + -0x68) + 8)" (( "(") (binary_expression "*(int *)(puVar37 + -0x68) + 8" (pointer_expression "*(int *)(puVar37 + -0x68)" (* "*") (cast_expression "(int *)(puVar37 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x68)" (( "(") (binary_expression "puVar37 + -0x68" (identifier "puVar37") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pEVar18 = param_1;" (assignment_expression "pEVar18 = param_1" (identifier "pEVar18") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);" (assignment_expression "iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3)" (parenthesized_expression "(**(code **)(puVar35 + -0x7b2c))" (( "(") (pointer_expression "**(code **)(puVar35 + -0x7b2c)" (* "*") (pointer_expression "*(code **)(puVar35 + -0x7b2c)" (* "*") (cast_expression "(code **)(puVar35 + -0x7b2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7b2c)" (( "(") (binary_expression "puVar35 + -0x7b2c" (identifier "puVar35") (+ "+") (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 "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "pEVar28 = param_3;" (assignment_expression "pEVar28 = param_3" (identifier "pEVar28") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (iVar11 == 0) {\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }\n        else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00031fd0:\n          param_3 = pEVar28;\n          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;\n          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);\n          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);\n          do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }" ({ "{") (labeled_statement "LAB_00031fd0:\n          param_3 = pEVar28;" (statement_identifier "LAB_00031fd0") (: ":") (expression_statement "param_3 = pEVar28;" (assignment_expression "param_3 = pEVar28" (identifier "param_3") (= "=") (identifier "pEVar28")) (; ";"))) (if_statement "if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;" (if "if") (parenthesized_expression "((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28))" (( "(") (binary_expression "(param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)" (parenthesized_expression "(param_6 == param_1)" (( "(") (binary_expression "param_6 == param_1" (identifier "param_6") (== "==") (identifier "param_1")) () ")")) (|| "||") (parenthesized_expression "((int)pEVar32 <= (int)pEVar28)" (( "(") (binary_expression "(int)pEVar32 <= (int)pEVar28" (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32")) (<= "<=") (cast_expression "(int)pEVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar28"))) () ")"))) () ")")) (goto_statement "goto LAB_00031c50;" (goto "goto") (statement_identifier "LAB_00031c50") (; ";"))) (expression_statement "pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1)" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1)" (( "(") (binary_expression "param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1" (binary_expression "param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70)" (field_expression "param_1->e_ident_magic_str" (identifier "param_1") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (pointer_expression "*(int *)(puVar37 + -0x70)" (* "*") (cast_expression "(int *)(puVar37 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x70)" (( "(") (binary_expression "puVar37 + -0x70" (identifier "puVar37") (+ "+") (number_literal "-0x70")) () ")"))))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);" (assignment_expression "pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1)" (identifier "pbVar7") (= "=") (cast_expression "(byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1)" (( "(") (binary_expression "param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1" (binary_expression "param_1->e_ident_magic_str + (int)pEVar28 * 4" (field_expression "param_1->e_ident_magic_str" (identifier "param_1") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar28 * 4" (cast_expression "(int)pEVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar28")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);" (assignment_expression "pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1)" (identifier "pbVar12") (= "=") (cast_expression "(byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1)" (( "(") (binary_expression "param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1" (binary_expression "param_6->e_ident_magic_str + (int)pEVar28 * 4" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar28 * 4" (cast_expression "(int)pEVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar28")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (do_statement "do {\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);" (do "do") (compound_statement "{\n            uVar25 = *(undefined4 *)pbVar7;\n            pbVar7 = pbVar7 + 4;\n            *(undefined4 *)pbVar12 = uVar25;\n            pbVar12 = pbVar12 + 4;\n          }" ({ "{") (expression_statement "uVar25 = *(undefined4 *)pbVar7;" (assignment_expression "uVar25 = *(undefined4 *)pbVar7" (identifier "uVar25") (= "=") (pointer_expression "*(undefined4 *)pbVar7" (* "*") (cast_expression "(undefined4 *)pbVar7" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar7")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + 4;" (assignment_expression "pbVar7 = pbVar7 + 4" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 4" (identifier "pbVar7") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)pbVar12 = uVar25;" (assignment_expression "*(undefined4 *)pbVar12 = uVar25" (pointer_expression "*(undefined4 *)pbVar12" (* "*") (cast_expression "(undefined4 *)pbVar12" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar12"))) (= "=") (identifier "uVar25")) (; ";")) (expression_statement "pbVar12 = pbVar12 + 4;" (assignment_expression "pbVar12 = pbVar12 + 4" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 4" (identifier "pbVar12") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pEVar18 != (Elf32_Ehdr *)pbVar7)" (( "(") (binary_expression "pEVar18 != (Elf32_Ehdr *)pbVar7" (identifier "pEVar18") (!= "!=") (cast_expression "(Elf32_Ehdr *)pbVar7" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar7"))) () ")")) (; ";")) (expression_statement "iVar11 = *(int *)(puVar37 + -0x50);" (assignment_expression "iVar11 = *(int *)(puVar37 + -0x50)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar37 + -0x50)" (* "*") (cast_expression "(int *)(puVar37 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }" (else "else") (compound_statement "{\n          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;\n          if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }\nLAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);\n        }" ({ "{") (expression_statement "pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str" (identifier "pEVar28") (= "=") (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")))) (; ";")) (if_statement "if ((int)param_3 < (int)pEVar32) {\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }" (if "if") (parenthesized_expression "((int)param_3 < (int)pEVar32)" (( "(") (binary_expression "(int)param_3 < (int)pEVar32" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32"))) () ")")) (compound_statement "{\n            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);\n            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);\n            iVar11 = *(int *)pbVar12;\n            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;\n            if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }\n            goto LAB_00031fd0;\n          }" ({ "{") (expression_statement "pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4)" (identifier "pEVar18") (= "=") (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 "pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1)" (identifier "pbVar12") (= "=") (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 "iVar11 = *(int *)pbVar12;" (assignment_expression "iVar11 = *(int *)pbVar12" (identifier "iVar11") (= "=") (pointer_expression "*(int *)pbVar12" (* "*") (cast_expression "(int *)pbVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar12")))) (; ";")) (expression_statement "*(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;" (assignment_expression "*(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1" (pointer_expression "*(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" (* "*") (cast_expression "(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (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")) () ")")))) (= "=") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar11 == 0) {\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;\n              pcVar9 = (char *)((int)pEVar18 + -1);\n              pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);\n              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);\n              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);\n              *(int *)pEVar18 = iVar11 + -1;\n              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);\n              while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }\n            }" ({ "{") (expression_statement "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar18->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar18->e_ident_class" (& "&") (field_expression "pEVar18->e_ident_class" (identifier "pEVar18") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (if_statement "if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;" (if "if") (parenthesized_expression "((int)pEVar32 <= (int)pEVar28)" (( "(") (binary_expression "(int)pEVar32 <= (int)pEVar28" (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32")) (<= "<=") (cast_expression "(int)pEVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar28"))) () ")")) (goto_statement "goto LAB_00031c50;" (goto "goto") (statement_identifier "LAB_00031c50") (; ";"))) (expression_statement "pcVar9 = (char *)((int)pEVar18 + -1);" (assignment_expression "pcVar9 = (char *)((int)pEVar18 + -1)" (identifier "pcVar9") (= "=") (cast_expression "(char *)((int)pEVar18 + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar18 + -1)" (( "(") (binary_expression "(int)pEVar18 + -1" (cast_expression "(int)pEVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar18")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str)" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)\n                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str)" (( "(") (binary_expression "(char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str" (cast_expression "(char *)((int)pEVar18 + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar18 + -1)" (( "(") (binary_expression "(int)pEVar18 + -1" (cast_expression "(int)pEVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar18")) (+ "+") (number_literal "-1")) () ")"))) (+ "+") (cast_expression "(int)param_6->e_ident_magic_str" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")))) () ")")))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)(param_3->e_ident_magic_str + 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3->e_ident_magic_str + 1)" (( "(") (binary_expression "param_3->e_ident_magic_str + 1" (field_expression "param_3->e_ident_magic_str" (identifier "param_3") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);" (assignment_expression "iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(pcVar9 + (int)param_1->e_ident_magic_str)" (* "*") (cast_expression "(int *)(pcVar9 + (int)param_1->e_ident_magic_str)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + (int)param_1->e_ident_magic_str)" (( "(") (binary_expression "pcVar9 + (int)param_1->e_ident_magic_str" (identifier "pcVar9") (+ "+") (cast_expression "(int)param_1->e_ident_magic_str" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "param_1->e_ident_magic_str" (identifier "param_1") (-> "->") (field_identifier "e_ident_magic_str")))) () ")"))))) (; ";")) (expression_statement "*(int *)pEVar18 = iVar11 + -1;" (assignment_expression "*(int *)pEVar18 = iVar11 + -1" (pointer_expression "*(int *)pEVar18" (* "*") (cast_expression "(int *)pEVar18" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar18"))) (= "=") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);" (assignment_expression "pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1)" (identifier "pbVar7") (= "=") (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")) () ")")))) (; ";")) (while_statement "while (iVar11 == 0) {\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }" (while "while") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                param_3 = pEVar28;\n                if (pEVar32 == pEVar28) goto LAB_00031c50;\n                iVar11 = *(int *)(pbVar12 + 8);\n                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;\n                pbVar12 = pbVar12 + 4;\n                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);\n                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;\n                pbVar7 = pbVar7 + 4;\n              }" ({ "{") (expression_statement "param_3 = pEVar28;" (assignment_expression "param_3 = pEVar28" (identifier "param_3") (= "=") (identifier "pEVar28")) (; ";")) (if_statement "if (pEVar32 == pEVar28) goto LAB_00031c50;" (if "if") (parenthesized_expression "(pEVar32 == pEVar28)" (( "(") (binary_expression "pEVar32 == pEVar28" (identifier "pEVar32") (== "==") (identifier "pEVar28")) () ")")) (goto_statement "goto LAB_00031c50;" (goto "goto") (statement_identifier "LAB_00031c50") (; ";"))) (expression_statement "iVar11 = *(int *)(pbVar12 + 8);" (assignment_expression "iVar11 = *(int *)(pbVar12 + 8)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(pbVar12 + 8)" (* "*") (cast_expression "(int *)(pbVar12 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar12 + 8)" (( "(") (binary_expression "pbVar12 + 8" (identifier "pbVar12") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)pEVar28->e_ident_magic_str" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + 4;" (assignment_expression "pbVar12 = pbVar12 + 4" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 4" (identifier "pbVar12") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)(iVar11 + -1)" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)(iVar11 + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -1)" (( "(") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18" (pointer_expression "*(Elf32_Ehdr **)(pbVar7 + 8)" (* "*") (cast_expression "(Elf32_Ehdr **)(pbVar7 + 8)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar7 + 8)" (( "(") (binary_expression "pbVar7 + 8" (identifier "pbVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "pEVar18")) (; ";")) (expression_statement "pbVar7 = pbVar7 + 4;" (assignment_expression "pbVar7 = pbVar7 + 4" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 4" (identifier "pbVar7") (+ "+") (number_literal "4"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_00031fd0;" (goto "goto") (statement_identifier "LAB_00031fd0") (; ";")) (} "}"))) (labeled_statement "LAB_00031c50:\n          iVar11 = *(int *)(puVar37 + -0x50);" (statement_identifier "LAB_00031c50") (: ":") (expression_statement "iVar11 = *(int *)(puVar37 + -0x50);" (assignment_expression "iVar11 = *(int *)(puVar37 + -0x50)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar37 + -0x50)" (* "*") (cast_expression "(int *)(puVar37 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6->e_ident_magic_str + iVar11 + -1)" (( "(") (binary_expression "param_6->e_ident_magic_str + iVar11 + -1" (binary_expression "param_6->e_ident_magic_str + iVar11" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (identifier "iVar11")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "iVar11._0_1_ = pEVar28->e_ident_magic_num;" (assignment_expression "iVar11._0_1_ = pEVar28->e_ident_magic_num" (field_expression "iVar11._0_1_" (identifier "iVar11") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar28->e_ident_magic_num" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "iVar11._1_1_ = pEVar28->e_ident_magic_str[0];" (assignment_expression "iVar11._1_1_ = pEVar28->e_ident_magic_str[0]" (field_expression "iVar11._1_1_" (identifier "iVar11") (. ".") (field_identifier "_1_1_")) (= "=") (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") (] "]"))) (; ";")) (expression_statement "iVar11._2_1_ = pEVar28->e_ident_magic_str[1];" (assignment_expression "iVar11._2_1_ = pEVar28->e_ident_magic_str[1]" (field_expression "iVar11._2_1_" (identifier "iVar11") (. ".") (field_identifier "_2_1_")) (= "=") (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") (] "]"))) (; ";")) (expression_statement "iVar11._3_1_ = pEVar28->e_ident_magic_str[2];" (assignment_expression "iVar11._3_1_ = pEVar28->e_ident_magic_str[2]" (field_expression "iVar11._3_1_" (identifier "iVar11") (. ".") (field_identifier "_3_1_")) (= "=") (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") (] "]"))) (; ";")) (if_statement "if (iVar11 == 0) {\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar11 = *(int *)(puVar37 + -0x78);\n          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;\n          do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);\n          *(int *)(puVar37 + -0x78) = iVar11;\n        }" ({ "{") (expression_statement "iVar11 = *(int *)(puVar37 + -0x78);" (assignment_expression "iVar11 = *(int *)(puVar37 + -0x78)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar37 + -0x78)" (* "*") (cast_expression "(int *)(puVar37 + -0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x78)" (( "(") (binary_expression "puVar37 + -0x78" (identifier "puVar37") (+ "+") (number_literal "-0x78")) () ")"))))) (; ";")) (expression_statement "pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;" (assignment_expression "pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1" (identifier "pcVar9") (= "=") (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70)" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (pointer_expression "*(int *)(puVar37 + -0x70)" (* "*") (cast_expression "(int *)(puVar37 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x70)" (( "(") (binary_expression "puVar37 + -0x70" (identifier "puVar37") (+ "+") (number_literal "-0x70")) () ")"))))) (+ "+") (number_literal "-1"))) (; ";")) (do_statement "do {\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          } while (*piVar14 == 0);" (do "do") (compound_statement "{\n            iVar11 = iVar11 + -1;\n            if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }\n            piVar14 = (int *)(pcVar9 + -8);\n            pcVar9 = pcVar9 + -4;\n          }" ({ "{") (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar11 == 0) {\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              piVar14 = *(int **)(puVar37 + -0x54);\n              goto LAB_00031a08;\n            }" ({ "{") (expression_statement "piVar14 = *(int **)(puVar37 + -0x54);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(puVar37 + -0x54)" (* "*") (cast_expression "(int **)(puVar37 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (goto_statement "goto LAB_00031a08;" (goto "goto") (statement_identifier "LAB_00031a08") (; ";")) (} "}"))) (expression_statement "piVar14 = (int *)(pcVar9 + -8);" (assignment_expression "piVar14 = (int *)(pcVar9 + -8)" (identifier "piVar14") (= "=") (cast_expression "(int *)(pcVar9 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + -8)" (( "(") (binary_expression "pcVar9 + -8" (identifier "pcVar9") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "pcVar9 = pcVar9 + -4;" (assignment_expression "pcVar9 = pcVar9 + -4" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + -4" (identifier "pcVar9") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar14 == 0)" (( "(") (binary_expression "*piVar14 == 0" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "*(int *)(puVar37 + -0x78) = iVar11;" (assignment_expression "*(int *)(puVar37 + -0x78) = iVar11" (pointer_expression "*(int *)(puVar37 + -0x78)" (* "*") (cast_expression "(int *)(puVar37 + -0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x78)" (( "(") (binary_expression "puVar37 + -0x78" (identifier "puVar37") (+ "+") (number_literal "-0x78")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (} "}"))) (expression_statement "param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);" (assignment_expression "param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78)" (identifier "param_3") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x78)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x78)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x78)" (( "(") (binary_expression "puVar37 + -0x78" (identifier "puVar37") (+ "+") (number_literal "-0x78")) () ")"))))) (; ";")) (if_statement "if (**(int **)(puVar37 + -0x54) < (int)param_3) {\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }" (if "if") (parenthesized_expression "(**(int **)(puVar37 + -0x54) < (int)param_3)" (( "(") (binary_expression "**(int **)(puVar37 + -0x54) < (int)param_3" (pointer_expression "**(int **)(puVar37 + -0x54)" (* "*") (pointer_expression "*(int **)(puVar37 + -0x54)" (* "*") (cast_expression "(int **)(puVar37 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")"))))) (< "<") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (compound_statement "{\n          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);\n          pcVar39 = *(code **)(puVar35 + -0x7a80);\nLAB_00031fa0:\n          pEVar18 = param_3;\n          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));\n          puVar35 = *(undefined **)(puVar37 + -0x90);\n          goto LAB_00031944;\n        }" ({ "{") (expression_statement "param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);" (assignment_expression "param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78)" (identifier "param_3") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x78)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x78)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x78)" (( "(") (binary_expression "puVar37 + -0x78" (identifier "puVar37") (+ "+") (number_literal "-0x78")) () ")"))))) (; ";")) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7a80);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7a80)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(puVar35 + -0x7a80)" (* "*") (cast_expression "(code **)(puVar35 + -0x7a80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7a80)" (( "(") (binary_expression "puVar35 + -0x7a80" (identifier "puVar35") (+ "+") (number_literal "-0x7a80")) () ")"))))) (; ";")) (labeled_statement "LAB_00031fa0:\n          pEVar18 = param_3;" (statement_identifier "LAB_00031fa0") (: ":") (expression_statement "pEVar18 = param_3;" (assignment_expression "pEVar18 = param_3" (identifier "pEVar18") (= "=") (identifier "param_3")) (; ";"))) (expression_statement "(*pcVar39)(*(undefined4 *)(puVar37 + -0x54));" (call_expression "(*pcVar39)(*(undefined4 *)(puVar37 + -0x54))" (parenthesized_expression "(*pcVar39)" (( "(") (pointer_expression "*pcVar39" (* "*") (identifier "pcVar39")) () ")")) (argument_list "(*(undefined4 *)(puVar37 + -0x54))" (( "(") (pointer_expression "*(undefined4 *)(puVar37 + -0x54)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")")))) () ")"))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (goto_statement "goto LAB_00031944;" (goto "goto") (statement_identifier "LAB_00031944") (; ";")) (} "}"))) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar37 + -0x54) + 4)" (( "(") (binary_expression "*(int *)(puVar37 + -0x54) + 4" (pointer_expression "*(int *)(puVar37 + -0x54)" (* "*") (cast_expression "(int *)(puVar37 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (} "}")))) (expression_statement "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);" (assignment_expression "pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1)" (identifier "pEVar29") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)param_4 & 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)param_4 & 1)" (( "(") (binary_expression "(uint)param_4 & 1" (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4")) (& "&") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" (identifier "puVar10") (= "=") (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 "pEVar18 = *(Elf32_Ehdr **)param_6;" (assignment_expression "pEVar18 = *(Elf32_Ehdr **)param_6" (identifier "pEVar18") (= "=") (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 "puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);" (assignment_expression "puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8)" (identifier "puVar21") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(puVar37 + -0x54) + 8)" (* "*") (cast_expression "(undefined4 **)(*(int *)(puVar37 + -0x54) + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar37 + -0x54) + 8)" (( "(") (binary_expression "*(int *)(puVar37 + -0x54) + 8" (pointer_expression "*(int *)(puVar37 + -0x54)" (* "*") (cast_expression "(int *)(puVar37 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "puVar4 = puVar21;" (assignment_expression "puVar4 = puVar21" (identifier "puVar4") (= "=") (identifier "puVar21")) (; ";")) (expression_statement "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" (identifier "pEVar27") (= "=") (identifier "param_6")) (; ";")) (if_statement "if (puVar10 != (undefined1 *)0x0) {\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }" (if "if") (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar10 != (undefined1 *)0x0" (identifier "puVar10") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);\n        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);\n      }" ({ "{") (do_statement "do {\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (puVar10 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n          *puVar4 = pEVar18;\n          puVar10 = puVar10 + -1;\n          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar4 = puVar4 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        }" ({ "{") (expression_statement "*puVar4 = pEVar18;" (assignment_expression "*puVar4 = pEVar18" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "pEVar18")) (; ";")) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + -1" (identifier "puVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;" (assignment_expression "pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class" (identifier "pEVar18") (= "=") (pointer_expression "*(Elf32_Ehdr **)&pEVar27->e_ident_class" (* "*") (cast_expression "(Elf32_Ehdr **)&pEVar27->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&pEVar27->e_ident_class" (& "&") (field_expression "pEVar27->e_ident_class" (identifier "pEVar27") (-> "->") (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 "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar27->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar27->e_ident_class" (& "&") (field_expression "pEVar27->e_ident_class" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar10 != (undefined1 *)0x0" (identifier "puVar10") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1)" (identifier "puVar21") (= "=") (binary_expression "puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1)" (identifier "puVar21") (+ "+") (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 "*puVar21 = pEVar18;" (assignment_expression "*puVar21 = pEVar18" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (identifier "pEVar18")) (; ";")) (} "}")) (else_clause "else {\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }" (else "else") (compound_statement "{\n      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);\n      iVar16 = *(int *)(puVar37 + -0x90);\n      iVar11 = (int)param_3 * 4;\n      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));\n      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;\n      param_1 = pEVar27;\n      if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }\n      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);\n      if (param_3 != (Elf32_Ehdr *)0x0) {\n        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }\n      pEVar18 = param_6;\n      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);\n      puVar35 = *(undefined **)(puVar37 + -0x90);\n      pEVar29 = param_4;\nLAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);\nLAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }\n    }" ({ "{") (expression_statement "iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);" (assignment_expression "iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27)" (identifier "iVar13") (= "=") (call_expression "(**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27)" (parenthesized_expression "(**(code **)(puVar35 + -0x7ad4))" (( "(") (pointer_expression "**(code **)(puVar35 + -0x7ad4)" (* "*") (pointer_expression "*(code **)(puVar35 + -0x7ad4)" (* "*") (cast_expression "(code **)(puVar35 + -0x7ad4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7ad4)" (( "(") (binary_expression "puVar35 + -0x7ad4" (identifier "puVar35") (+ "+") (number_literal "-0x7ad4")) () ")"))))) () ")")) (argument_list "(pEVar20,param_6,param_3,pEVar27)" (( "(") (identifier "pEVar20") (, ",") (identifier "param_6") (, ",") (identifier "param_3") (, ",") (identifier "pEVar27") () ")")))) (; ";")) (expression_statement "iVar16 = *(int *)(puVar37 + -0x90);" (assignment_expression "iVar16 = *(int *)(puVar37 + -0x90)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar37 + -0x90)" (* "*") (cast_expression "(int *)(puVar37 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "iVar11 = (int)param_3 * 4;" (assignment_expression "iVar11 = (int)param_3 * 4" (identifier "iVar11") (= "=") (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 + ((iVar13 != 0) - 1));" (assignment_expression "param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1))" (identifier "param_3") (= "=") (cast_expression "(Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3->e_ident_magic_str + ((iVar13 != 0) - 1))" (( "(") (binary_expression "param_3->e_ident_magic_str + ((iVar13 != 0) - 1)" (field_expression "param_3->e_ident_magic_str" (identifier "param_3") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (parenthesized_expression "((iVar13 != 0) - 1)" (( "(") (binary_expression "(iVar13 != 0) - 1" (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (- "-") (number_literal "1")) () ")"))) () ")")))) (; ";")) (expression_statement "*(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;" (assignment_expression "*(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13" (pointer_expression "*(int *)(pEVar20->e_ident_magic_str + iVar11 + -1)" (* "*") (cast_expression "(int *)(pEVar20->e_ident_magic_str + iVar11 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar20->e_ident_magic_str + iVar11 + -1)" (( "(") (binary_expression "pEVar20->e_ident_magic_str + iVar11 + -1" (binary_expression "pEVar20->e_ident_magic_str + iVar11" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (identifier "iVar11")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "param_1 = pEVar27;" (assignment_expression "param_1 = pEVar27" (identifier "param_1") (= "=") (identifier "pEVar27")) (; ";")) (if_statement "if ((int)pEVar32 <= (int)param_3) {\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }" (if "if") (parenthesized_expression "((int)pEVar32 <= (int)param_3)" (( "(") (binary_expression "(int)pEVar32 <= (int)param_3" (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32")) (<= "<=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (compound_statement "{\n        uVar25 = *(undefined4 *)(puVar37 + -0x4c);\n        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);\n        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;\n        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);\n        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);\n        iVar16 = *(int *)(puVar37 + -0x90);\n        uVar15._0_1_ = pEVar20->e_ident_magic_num;\n        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }\nLAB_00031de0:\n        pEVar18 = param_6;\n        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));\n        puVar35 = *(undefined **)(puVar37 + -0x90);\n        goto LAB_000318dc;\n      }" ({ "{") (expression_statement "uVar25 = *(undefined4 *)(puVar37 + -0x4c);" (assignment_expression "uVar25 = *(undefined4 *)(puVar37 + -0x4c)" (identifier "uVar25") (= "=") (pointer_expression "*(undefined4 *)(puVar37 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x4c)" (( "(") (binary_expression "puVar37 + -0x4c" (identifier "puVar37") (+ "+") (number_literal "-0x4c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);" (assignment_expression "*(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -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 *)(puVar37 + -0x74)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x74)" (( "(") (binary_expression "puVar37 + -0x74" (identifier "puVar37") (+ "+") (number_literal "-0x74")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;" (assignment_expression "*(undefined1 **)(puVar3 + 0x10) = puVar37 + -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 "puVar37 + -0x44" (identifier "puVar37") (+ "+") (number_literal "-0x44"))) (; ";")) (expression_statement "FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);" (call_expression "FUN_00030f30(pEVar20,param_3,uVar25,pEVar32)" (identifier "FUN_00030f30") (argument_list "(pEVar20,param_3,uVar25,pEVar32)" (( "(") (identifier "pEVar20") (, ",") (identifier "param_3") (, ",") (identifier "uVar25") (, ",") (identifier "pEVar32") () ")"))) (; ";")) (expression_statement "puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1)" (identifier "puVar10") (= "=") (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 "iVar16 = *(int *)(puVar37 + -0x90);" (assignment_expression "iVar16 = *(int *)(puVar37 + -0x90)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar37 + -0x90)" (* "*") (cast_expression "(int *)(puVar37 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "uVar15._0_1_ = pEVar20->e_ident_magic_num;" (assignment_expression "uVar15._0_1_ = pEVar20->e_ident_magic_num" (field_expression "uVar15._0_1_" (identifier "uVar15") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar20->e_ident_magic_num" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar15._1_1_ = pEVar20->e_ident_magic_str[0];" (assignment_expression "uVar15._1_1_ = pEVar20->e_ident_magic_str[0]" (field_expression "uVar15._1_1_" (identifier "uVar15") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar20->e_ident_magic_str[0]" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar15._2_1_ = pEVar20->e_ident_magic_str[1];" (assignment_expression "uVar15._2_1_ = pEVar20->e_ident_magic_str[1]" (field_expression "uVar15._2_1_" (identifier "uVar15") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar20->e_ident_magic_str[1]" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar15._3_1_ = pEVar20->e_ident_magic_str[2];" (assignment_expression "uVar15._3_1_ = pEVar20->e_ident_magic_str[2]" (field_expression "uVar15._3_1_" (identifier "uVar15") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_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 "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" (identifier "pEVar27") (= "=") (identifier "param_6")) (; ";")) (expression_statement "pEVar18 = pEVar20;" (assignment_expression "pEVar18 = pEVar20" (identifier "pEVar18") (= "=") (identifier "pEVar20")) (; ";")) (if_statement "if (puVar10 == (undefined1 *)0x0) {\n          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }\n        else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }" (if "if") (parenthesized_expression "(puVar10 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar10 == (undefined1 *)0x0" (identifier "puVar10") (== "==") (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)uVar15 >> 0x18);\n          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n          param_6->e_ident_magic_str[2] = (char)uVar15;\n          param_3 = pEVar32;\n        }" ({ "{") (expression_statement "param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);" (assignment_expression "param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18)" (field_expression "param_6->e_ident_magic_num" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar15 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar15 >> 0x18)" (( "(") (binary_expression "(uint)uVar15 >> 0x18" (cast_expression "(uint)uVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar15")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);" (assignment_expression "param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 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)uVar15 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar15 >> 0x10)" (( "(") (binary_expression "(uint)uVar15 >> 0x10" (cast_expression "(uint)uVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar15")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);" (assignment_expression "param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 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)uVar15 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar15 >> 8)" (( "(") (binary_expression "(uint)uVar15 >> 8" (cast_expression "(uint)uVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar15")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "param_6->e_ident_magic_str[2] = (char)uVar15;" (assignment_expression "param_6->e_ident_magic_str[2] = (char)uVar15" (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)uVar15" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar15"))) (; ";")) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" (identifier "param_3") (= "=") (identifier "pEVar32")) (; ";")) (} "}")) (else_clause "else {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }" (else "else") (compound_statement "{\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;\n          param_3 = pEVar32;\n        }" ({ "{") (do_statement "do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar15;\n            puVar10 = puVar10 + -1;\n            uVar15._0_1_ = pEVar18->e_ident_class;\n            uVar15._1_1_ = pEVar18->e_ident_data;\n            uVar15._2_1_ = pEVar18->e_ident_version;\n            uVar15._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          }" ({ "{") (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar15 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar15 >> 0x18)" (( "(") (binary_expression "(uint)uVar15 >> 0x18" (cast_expression "(uint)uVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar15")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10)" (subscript_expression "pEVar27->e_ident_magic_str[0]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar15 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar15 >> 0x10)" (( "(") (binary_expression "(uint)uVar15 >> 0x10" (cast_expression "(uint)uVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar15")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8)" (subscript_expression "pEVar27->e_ident_magic_str[1]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar15 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar15 >> 8)" (( "(") (binary_expression "(uint)uVar15 >> 8" (cast_expression "(uint)uVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar15")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar15;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar15" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar15" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar15"))) (; ";")) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + -1" (identifier "puVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar15._0_1_ = pEVar18->e_ident_class;" (assignment_expression "uVar15._0_1_ = pEVar18->e_ident_class" (field_expression "uVar15._0_1_" (identifier "uVar15") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar18->e_ident_class" (identifier "pEVar18") (-> "->") (field_identifier "e_ident_class"))) (; ";")) (expression_statement "uVar15._1_1_ = pEVar18->e_ident_data;" (assignment_expression "uVar15._1_1_ = pEVar18->e_ident_data" (field_expression "uVar15._1_1_" (identifier "uVar15") (. ".") (field_identifier "_1_1_")) (= "=") (field_expression "pEVar18->e_ident_data" (identifier "pEVar18") (-> "->") (field_identifier "e_ident_data"))) (; ";")) (expression_statement "uVar15._2_1_ = pEVar18->e_ident_version;" (assignment_expression "uVar15._2_1_ = pEVar18->e_ident_version" (field_expression "uVar15._2_1_" (identifier "uVar15") (. ".") (field_identifier "_2_1_")) (= "=") (field_expression "pEVar18->e_ident_version" (identifier "pEVar18") (-> "->") (field_identifier "e_ident_version"))) (; ";")) (expression_statement "uVar15._3_1_ = pEVar18->e_ident_osabi;" (assignment_expression "uVar15._3_1_ = pEVar18->e_ident_osabi" (field_expression "uVar15._3_1_" (identifier "uVar15") (. ".") (field_identifier "_3_1_")) (= "=") (field_expression "pEVar18->e_ident_osabi" (identifier "pEVar18") (-> "->") (field_identifier "e_ident_osabi"))) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar27->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar27->e_ident_class" (& "&") (field_expression "pEVar27->e_ident_class" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar18->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar18->e_ident_class" (& "&") (field_expression "pEVar18->e_ident_class" (identifier "pEVar18") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar10 != (undefined1 *)0x0" (identifier "puVar10") (!= "!=") (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 *)(puVar37 + -0x50) + -1) = uVar15;" (assignment_expression "*(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15" (pointer_expression "*(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" (* "*") (cast_expression "(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1)" (( "(") (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1" (binary_expression "param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50)" (field_expression "param_6->e_ident_magic_str" (identifier "param_6") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (pointer_expression "*(int *)(puVar37 + -0x50)" (* "*") (cast_expression "(int *)(puVar37 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x50)" (( "(") (binary_expression "puVar37 + -0x50" (identifier "puVar37") (+ "+") (number_literal "-0x50")) () ")"))))) (+ "+") (number_literal "-1")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "param_3 = pEVar32;" (assignment_expression "param_3 = pEVar32" (identifier "param_3") (= "=") (identifier "pEVar32")) (; ";")) (} "}")))) (labeled_statement "LAB_00031de0:\n        pEVar18 = param_6;" (statement_identifier "LAB_00031de0") (: ":") (expression_statement "pEVar18 = param_6;" (assignment_expression "pEVar18 = param_6" (identifier "pEVar18") (= "=") (identifier "param_6")) (; ";"))) (expression_statement "(**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));" (call_expression "(**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c))" (parenthesized_expression "(**(code **)(iVar16 + -0x7ae0))" (( "(") (pointer_expression "**(code **)(iVar16 + -0x7ae0)" (* "*") (pointer_expression "*(code **)(iVar16 + -0x7ae0)" (* "*") (cast_expression "(code **)(iVar16 + -0x7ae0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar16 + -0x7ae0)" (( "(") (binary_expression "iVar16 + -0x7ae0" (identifier "iVar16") (+ "+") (number_literal "-0x7ae0")) () ")"))))) () ")")) (argument_list "(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c))" (( "(") (identifier "param_6") (, ",") (identifier "param_6") (, ",") (identifier "param_3") (, ",") (pointer_expression "*(undefined4 *)(puVar37 + -0x6c)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x6c)" (( "(") (binary_expression "puVar37 + -0x6c" (identifier "puVar37") (+ "+") (number_literal "-0x6c")) () ")")))) () ")"))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (goto_statement "goto LAB_000318dc;" (goto "goto") (statement_identifier "LAB_000318dc") (; ";")) (} "}"))) (expression_statement "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);" (assignment_expression "puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1)" (identifier "puVar10") (= "=") (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        uVar19._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\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._0_1_ = pEVar20->e_ident_magic_num;\n        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];\n        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];\n        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];\n        pEVar27 = param_6;\n        pEVar18 = pEVar20;\n        if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n        pEVar27->e_ident_magic_str[2] = (char)uVar19;\n        goto LAB_00031de0;\n      }" ({ "{") (expression_statement "uVar19._0_1_ = pEVar20->e_ident_magic_num;" (assignment_expression "uVar19._0_1_ = pEVar20->e_ident_magic_num" (field_expression "uVar19._0_1_" (identifier "uVar19") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar20->e_ident_magic_num" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar19._1_1_ = pEVar20->e_ident_magic_str[0];" (assignment_expression "uVar19._1_1_ = pEVar20->e_ident_magic_str[0]" (field_expression "uVar19._1_1_" (identifier "uVar19") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar20->e_ident_magic_str[0]" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar19._2_1_ = pEVar20->e_ident_magic_str[1];" (assignment_expression "uVar19._2_1_ = pEVar20->e_ident_magic_str[1]" (field_expression "uVar19._2_1_" (identifier "uVar19") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar20->e_ident_magic_str[1]" (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar19._3_1_ = pEVar20->e_ident_magic_str[2];" (assignment_expression "uVar19._3_1_ = pEVar20->e_ident_magic_str[2]" (field_expression "uVar19._3_1_" (identifier "uVar19") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_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 "pEVar27 = param_6;" (assignment_expression "pEVar27 = param_6" (identifier "pEVar27") (= "=") (identifier "param_6")) (; ";")) (expression_statement "pEVar18 = pEVar20;" (assignment_expression "pEVar18 = pEVar20" (identifier "pEVar18") (= "=") (identifier "pEVar20")) (; ";")) (if_statement "if (puVar10 != (undefined1 *)0x0) {\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }" (if "if") (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar10 != (undefined1 *)0x0" (identifier "puVar10") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);\n          pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);\n        }" ({ "{") (do_statement "do {\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          } while (puVar10 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);\n            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);\n            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);\n            pEVar27->e_ident_magic_str[2] = (char)uVar19;\n            puVar10 = puVar10 + -1;\n            uVar19._0_1_ = pEVar18->e_ident_class;\n            uVar19._1_1_ = pEVar18->e_ident_data;\n            uVar19._2_1_ = pEVar18->e_ident_version;\n            uVar19._3_1_ = pEVar18->e_ident_osabi;\n            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;\n          }" ({ "{") (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar19 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar19 >> 0x18)" (( "(") (binary_expression "(uint)uVar19 >> 0x18" (cast_expression "(uint)uVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar19")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10)" (subscript_expression "pEVar27->e_ident_magic_str[0]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar19 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar19 >> 0x10)" (( "(") (binary_expression "(uint)uVar19 >> 0x10" (cast_expression "(uint)uVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar19")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8)" (subscript_expression "pEVar27->e_ident_magic_str[1]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar19 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar19 >> 8)" (( "(") (binary_expression "(uint)uVar19 >> 8" (cast_expression "(uint)uVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar19")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar19;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar19" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar19" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar19"))) (; ";")) (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + -1" (identifier "puVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar19._0_1_ = pEVar18->e_ident_class;" (assignment_expression "uVar19._0_1_ = pEVar18->e_ident_class" (field_expression "uVar19._0_1_" (identifier "uVar19") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar18->e_ident_class" (identifier "pEVar18") (-> "->") (field_identifier "e_ident_class"))) (; ";")) (expression_statement "uVar19._1_1_ = pEVar18->e_ident_data;" (assignment_expression "uVar19._1_1_ = pEVar18->e_ident_data" (field_expression "uVar19._1_1_" (identifier "uVar19") (. ".") (field_identifier "_1_1_")) (= "=") (field_expression "pEVar18->e_ident_data" (identifier "pEVar18") (-> "->") (field_identifier "e_ident_data"))) (; ";")) (expression_statement "uVar19._2_1_ = pEVar18->e_ident_version;" (assignment_expression "uVar19._2_1_ = pEVar18->e_ident_version" (field_expression "uVar19._2_1_" (identifier "uVar19") (. ".") (field_identifier "_2_1_")) (= "=") (field_expression "pEVar18->e_ident_version" (identifier "pEVar18") (-> "->") (field_identifier "e_ident_version"))) (; ";")) (expression_statement "uVar19._3_1_ = pEVar18->e_ident_osabi;" (assignment_expression "uVar19._3_1_ = pEVar18->e_ident_osabi" (field_expression "uVar19._3_1_" (identifier "uVar19") (. ".") (field_identifier "_3_1_")) (= "=") (field_expression "pEVar18->e_ident_osabi" (identifier "pEVar18") (-> "->") (field_identifier "e_ident_osabi"))) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar27->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar27->e_ident_class" (& "&") (field_expression "pEVar27->e_ident_class" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar18->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar18->e_ident_class" (& "&") (field_expression "pEVar18->e_ident_class" (identifier "pEVar18") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar10 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar10 != (undefined1 *)0x0" (identifier "puVar10") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)\n                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3)" (identifier "pEVar27") (= "=") (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 "pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar19 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar19 >> 0x18)" (( "(") (binary_expression "(uint)uVar19 >> 0x18" (cast_expression "(uint)uVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar19")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10)" (subscript_expression "pEVar27->e_ident_magic_str[0]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar19 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar19 >> 0x10)" (( "(") (binary_expression "(uint)uVar19 >> 0x10" (cast_expression "(uint)uVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar19")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8)" (subscript_expression "pEVar27->e_ident_magic_str[1]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar19 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar19 >> 8)" (( "(") (binary_expression "(uint)uVar19 >> 8" (cast_expression "(uint)uVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar19")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar19;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar19" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar19" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar19"))) (; ";")) (goto_statement "goto LAB_00031de0;" (goto "goto") (statement_identifier "LAB_00031de0") (; ";")) (} "}"))) (expression_statement "pEVar18 = param_6;" (assignment_expression "pEVar18 = param_6" (identifier "pEVar18") (= "=") (identifier "param_6")) (; ";")) (expression_statement "(**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);" (call_expression "(**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27)" (parenthesized_expression "(**(code **)(iVar16 + -0x7ae0))" (( "(") (pointer_expression "**(code **)(iVar16 + -0x7ae0)" (* "*") (pointer_expression "*(code **)(iVar16 + -0x7ae0)" (* "*") (cast_expression "(code **)(iVar16 + -0x7ae0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar16 + -0x7ae0)" (( "(") (binary_expression "iVar16 + -0x7ae0" (identifier "iVar16") (+ "+") (number_literal "-0x7ae0")) () ")"))))) () ")")) (argument_list "(param_6,param_6,0,pEVar27)" (( "(") (identifier "param_6") (, ",") (identifier "param_6") (, ",") (number_literal "0") (, ",") (identifier "pEVar27") () ")"))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "pEVar29 = param_4;" (assignment_expression "pEVar29 = param_4" (identifier "pEVar29") (= "=") (identifier "param_4")) (; ";")) (labeled_statement "LAB_00031a04:\n      piVar14 = *(int **)(puVar37 + -0x54);" (statement_identifier "LAB_00031a04") (: ":") (expression_statement "piVar14 = *(int **)(puVar37 + -0x54);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x54)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(puVar37 + -0x54)" (* "*") (cast_expression "(int **)(puVar37 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";"))) (labeled_statement "LAB_00031a08:\n      if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }" (statement_identifier "LAB_00031a08") (: ":") (if_statement "if (*piVar14 < 0) {\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 *)(puVar37 + -0x54) + 4) = 0;\n      }" (if "if") (parenthesized_expression "(*piVar14 < 0)" (( "(") (binary_expression "*piVar14 < 0" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);\n        pEVar18 = (Elf32_Ehdr *)0x0;\n        (**(code **)(puVar35 + -0x7a80))(param_1);\n        puVar35 = *(undefined **)(puVar37 + -0x90);\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 **)(puVar37 + -0x54);" (assignment_expression "param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54)" (identifier "param_1") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x54)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x54)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (expression_statement "pEVar18 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)0x0" (identifier "pEVar18") (= "=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "(**(code **)(puVar35 + -0x7a80))(param_1);" (call_expression "(**(code **)(puVar35 + -0x7a80))(param_1)" (parenthesized_expression "(**(code **)(puVar35 + -0x7a80))" (( "(") (pointer_expression "**(code **)(puVar35 + -0x7a80)" (* "*") (pointer_expression "*(code **)(puVar35 + -0x7a80)" (* "*") (cast_expression "(code **)(puVar35 + -0x7a80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7a80)" (( "(") (binary_expression "puVar35 + -0x7a80" (identifier "puVar35") (+ "+") (number_literal "-0x7a80")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (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 *)(puVar37 + -0x54) + 4) = 0;\n      }" (else "else") (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;\n      }" ({ "{") (expression_statement "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar37 + -0x54) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar37 + -0x54) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar37 + -0x54) + 4)" (( "(") (binary_expression "*(int *)(puVar37 + -0x54) + 4" (pointer_expression "*(int *)(puVar37 + -0x54)" (* "*") (cast_expression "(int *)(puVar37 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x54)" (( "(") (binary_expression "puVar37 + -0x54" (identifier "puVar37") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))))) (} "}")))) (labeled_statement "LAB_00031994:\n    piVar14 = *(int **)(puVar37 + -0x40);" (statement_identifier "LAB_00031994") (: ":") (expression_statement "piVar14 = *(int **)(puVar37 + -0x40);" (assignment_expression "piVar14 = *(int **)(puVar37 + -0x40)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(puVar37 + -0x40)" (* "*") (cast_expression "(int **)(puVar37 + -0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x40)" (( "(") (binary_expression "puVar37 + -0x40" (identifier "puVar37") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";"))) (expression_statement "piVar6 = *(int **)(puVar37 + -0x58);" (assignment_expression "piVar6 = *(int **)(puVar37 + -0x58)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(puVar37 + -0x58)" (* "*") (cast_expression "(int **)(puVar37 + -0x58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x58)" (( "(") (binary_expression "puVar37 + -0x58" (identifier "puVar37") (+ "+") (number_literal "-0x58")) () ")"))))) (; ";")) (if_statement "if (piVar14 != (int *)0x0) {\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }" (if "if") (parenthesized_expression "(piVar14 != (int *)0x0)" (( "(") (binary_expression "piVar14 != (int *)0x0" (identifier "piVar14") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar39 = *(code **)(puVar35 + -0x7a28);\n      goto LAB_00031708;\n    }" ({ "{") (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7a28);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7a28)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(puVar35 + -0x7a28)" (* "*") (cast_expression "(code **)(puVar35 + -0x7a28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7a28)" (( "(") (binary_expression "puVar35 + -0x7a28" (identifier "puVar35") (+ "+") (number_literal "-0x7a28")) () ")"))))) (; ";")) (goto_statement "goto LAB_00031708;" (goto "goto") (statement_identifier "LAB_00031708") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }" (else "else") (compound_statement "{\n    pcVar39 = *(code **)(puVar34 + 0x6c110);\n    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;\n    *(undefined4 *)(puVar37 + -0x34) = 1;\n    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;\n    (*pcVar39)();\n    puVar35 = *(undefined **)(puVar37 + -0x90);\nLAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);\n  }" ({ "{") (expression_statement "pcVar39 = *(code **)(puVar34 + 0x6c110);" (assignment_expression "pcVar39 = *(code **)(puVar34 + 0x6c110)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(puVar34 + 0x6c110)" (* "*") (cast_expression "(code **)(puVar34 + 0x6c110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar34 + 0x6c110)" (( "(") (binary_expression "puVar34 + 0x6c110" (identifier "puVar34") (+ "+") (number_literal "0x6c110")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;" (assignment_expression "*(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4" (pointer_expression "*(Elf32_Ehdr **)(puVar37 + -0x3c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar37 + -0x3c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x3c)" (( "(") (binary_expression "puVar37 + -0x3c" (identifier "puVar37") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)(puVar37 + -0x34) = 1;" (assignment_expression "*(undefined4 *)(puVar37 + -0x34) = 1" (pointer_expression "*(undefined4 *)(puVar37 + -0x34)" (* "*") (cast_expression "(undefined4 *)(puVar37 + -0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x34)" (( "(") (binary_expression "puVar37 + -0x34" (identifier "puVar37") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;" (assignment_expression "*(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c" (pointer_expression "*(undefined1 **)(puVar37 + -0x30)" (* "*") (cast_expression "(undefined1 **)(puVar37 + -0x30)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x30)" (( "(") (binary_expression "puVar37 + -0x30" (identifier "puVar37") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (binary_expression "puVar37 + -0x3c" (identifier "puVar37") (+ "+") (number_literal "-0x3c"))) (; ";")) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" (( "(") (pointer_expression "*pcVar39" (* "*") (identifier "pcVar39")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar35 = *(undefined **)(puVar37 + -0x90);" (assignment_expression "puVar35 = *(undefined **)(puVar37 + -0x90)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined **)(puVar37 + -0x90)" (* "*") (cast_expression "(undefined **)(puVar37 + -0x90)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x90)" (( "(") (binary_expression "puVar37 + -0x90" (identifier "puVar37") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (labeled_statement "LAB_00031764:\n    piVar6 = *(int **)(puVar37 + -0x58);" (statement_identifier "LAB_00031764") (: ":") (expression_statement "piVar6 = *(int **)(puVar37 + -0x58);" (assignment_expression "piVar6 = *(int **)(puVar37 + -0x58)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(puVar37 + -0x58)" (* "*") (cast_expression "(int **)(puVar37 + -0x58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + -0x58)" (( "(") (binary_expression "puVar37 + -0x58" (identifier "puVar37") (+ "+") (number_literal "-0x58")) () ")"))))) (; ";"))) (} "}")))) (if_statement "if (*(int *)(puVar37 + -0x2c) == *piVar6) {\n    return *piVar6;\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar37 + -0x2c) == *piVar6)" (( "(") (binary_expression "*(int *)(puVar37 + -0x2c) == *piVar6" (pointer_expression "*(int *)(puVar37 + -0x2c)" (* "*") (cast_expression "(int *)(puVar37 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + -0x2c)" (( "(") (binary_expression "puVar37 + -0x2c" (identifier "puVar37") (+ "+") (number_literal "-0x2c")) () ")")))) (== "==") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) () ")")) (compound_statement "{\n    return *piVar6;\n  }" ({ "{") (return_statement "return *piVar6;" (return "return") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (} "}"))) (expression_statement "pcVar39 = *(code **)(puVar35 + -0x7b70);" (assignment_expression "pcVar39 = *(code **)(puVar35 + -0x7b70)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(puVar35 + -0x7b70)" (* "*") (cast_expression "(code **)(puVar35 + -0x7b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35 + -0x7b70)" (( "(") (binary_expression "puVar35 + -0x7b70" (identifier "puVar35") (+ "+") (number_literal "-0x7b70")) () ")"))))) (; ";")) (expression_statement "uVar25 = 0x3206c;" (assignment_expression "uVar25 = 0x3206c" (identifier "uVar25") (= "=") (number_literal "0x3206c")) (; ";")) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" (( "(") (pointer_expression "*pcVar39" (* "*") (identifier "pcVar39")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar36 = pcVar39 + 0x72fd0;" (assignment_expression "pcVar36 = pcVar39 + 0x72fd0" (identifier "pcVar36") (= "=") (binary_expression "pcVar39 + 0x72fd0" (identifier "pcVar39") (+ "+") (number_literal "0x72fd0"))) (; ";")) (expression_statement "puVar10 = puVar3 + -0x38;" (assignment_expression "puVar10 = puVar3 + -0x38" (identifier "puVar10") (= "=") (binary_expression "puVar3 + -0x38" (identifier "puVar3") (+ "+") (number_literal "-0x38"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29" (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 "pEVar29")) (; ";")) (expression_statement "piVar6 = *(int **)(pcVar39 + 0x6b4d0);" (assignment_expression "piVar6 = *(int **)(pcVar39 + 0x6b4d0)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(pcVar39 + 0x6b4d0)" (* "*") (cast_expression "(int **)(pcVar39 + 0x6b4d0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar39 + 0x6b4d0)" (( "(") (binary_expression "pcVar39 + 0x6b4d0" (identifier "pcVar39") (+ "+") (number_literal "0x6b4d0")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8;" (assignment_expression "*(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8" (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 "puVar37 + -0xa8" (identifier "puVar37") (+ "+") (number_literal "-0xa8"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28" (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 "pEVar28")) (; ";")) (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) = uVar25;" (assignment_expression "*(undefined4 *)(puVar3 + -4) = uVar25" (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 "uVar25")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar30" (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 "pEVar30")) (; ";")) (expression_statement "*(code **)(puVar3 + -0x28) = pcVar36;" (assignment_expression "*(code **)(puVar3 + -0x28) = pcVar36" (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 "pcVar36")) (; ";")) (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 "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x1c)" (( "(") (binary_expression "puVar3 + -0x1c" (identifier "puVar3") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (if_statement "if ((Elf32_Ehdr *)&DAT_00000004 < pEVar18) {\n    if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);\n    pcVar36 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);\n    uVar17 = 8;\n    do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);\n    if (uVar42 == 0) {\n      trap(7);\n    }\n    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    iVar13 = 0;\n    uVar43 = 1;\n    iVar11 = 0;\n    uVar17 = 0;\n    uVar42 = 6;\n    do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);\n    if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    piVar31 = *(int **)(puVar3 + -0x20);\n    if (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }" (if "if") (parenthesized_expression "((Elf32_Ehdr *)&DAT_00000004 < pEVar18)" (( "(") (binary_expression "(Elf32_Ehdr *)&DAT_00000004 < pEVar18" (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 "pEVar18")) () ")")) (compound_statement "{\n    if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);\n    pcVar36 = *(code **)(puVar3 + -0x28);\n    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);\n    uVar17 = 8;\n    do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);\n    if (uVar42 == 0) {\n      trap(7);\n    }\n    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;\n    *(undefined4 *)(puVar3 + -0x20) = 0;\n    if (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    iVar13 = 0;\n    uVar43 = 1;\n    iVar11 = 0;\n    uVar17 = 0;\n    uVar42 = 6;\n    do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);\n    if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    piVar31 = *(int **)(puVar3 + -0x20);\n    if (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n  }" ({ "{") (if_statement "if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }\n    else {\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }" (if "if") (parenthesized_expression "(*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1))" (( "(") (binary_expression "*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (< "<") (cast_expression "(int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)" (( "(") (binary_expression "((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1" (binary_expression "((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6)" (parenthesized_expression "((uint)pEVar18 >> 5)" (( "(") (binary_expression "(uint)pEVar18 >> 5" (cast_expression "(uint)pEVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar18")) (>> ">>") (number_literal "5")) () ")")) (+ "+") (parenthesized_expression "((uint)pEVar18 >> 6)" (( "(") (binary_expression "(uint)pEVar18 >> 6" (cast_expression "(uint)pEVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar18")) (>> ">>") (number_literal "6")) () ")"))) (+ "+") (number_literal "1")) () ")")))) () ")")) (compound_statement "{\n      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" ({ "{") (expression_statement "pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))()" (identifier "pEVar30") (= "=") (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))()" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar39 + 0x6b550))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x6b550))" (( "(") (pointer_expression "**(code **)(pcVar39 + 0x6b550)" (* "*") (pointer_expression "*(code **)(pcVar39 + 0x6b550)" (* "*") (cast_expression "(code **)(pcVar39 + 0x6b550)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar39 + 0x6b550)" (( "(") (binary_expression "pcVar39 + 0x6b550" (identifier "pcVar39") (+ "+") (number_literal "0x6b550")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pcVar36 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar36 = *(code **)(puVar3 + -0x28)" (identifier "pcVar36") (= "=") (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      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }" (else "else") (compound_statement "{\n      pEVar30 = (Elf32_Ehdr *)piVar14[2];\n    }" ({ "{") (expression_statement "pEVar30 = (Elf32_Ehdr *)piVar14[2];" (assignment_expression "pEVar30 = (Elf32_Ehdr *)piVar14[2]" (identifier "pEVar30") (= "=") (cast_expression "(Elf32_Ehdr *)piVar14[2]" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar14[2]" (identifier "piVar14") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}")))) (expression_statement "iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);" (assignment_expression "iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18)" (parenthesized_expression "(**(code **)(pcVar36 + -0x7efc))" (( "(") (pointer_expression "**(code **)(pcVar36 + -0x7efc)" (* "*") (pointer_expression "*(code **)(pcVar36 + -0x7efc)" (* "*") (cast_expression "(code **)(pcVar36 + -0x7efc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar36 + -0x7efc)" (( "(") (binary_expression "pcVar36 + -0x7efc" (identifier "pcVar36") (+ "+") (number_literal "-0x7efc")) () ")"))))) () ")")) (argument_list "(pEVar30,pEVar18)" (( "(") (identifier "pEVar30") (, ",") (identifier "pEVar18") () ")")))) (; ";")) (expression_statement "pcVar36 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar36 = *(code **)(puVar3 + -0x28)" (identifier "pcVar36") (= "=") (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 *)(pcVar36 + -0x7c6c) + 0x1c);" (assignment_expression "puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar36 + -0x7c6c) + 0x1c)" (( "(") (binary_expression "*(int *)(pcVar36 + -0x7c6c) + 0x1c" (pointer_expression "*(int *)(pcVar36 + -0x7c6c)" (* "*") (cast_expression "(int *)(pcVar36 + -0x7c6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar36 + -0x7c6c)" (( "(") (binary_expression "pcVar36 + -0x7c6c" (identifier "pcVar36") (+ "+") (number_literal "-0x7c6c")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))) (; ";")) (expression_statement "uVar17 = 8;" (assignment_expression "uVar17 = 8" (identifier "uVar17") (= "=") (number_literal "8")) (; ";")) (do_statement "do {\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    } while (pEVar28 < pEVar18);" (do "do") (compound_statement "{\n      uVar42 = uVar17;\n      pEVar28 = (Elf32_Ehdr *)*puVar4;\n      puVar4 = puVar4 + -1;\n      uVar17 = uVar42 - 1;\n    }" ({ "{") (expression_statement "uVar42 = uVar17;" (assignment_expression "uVar42 = uVar17" (identifier "uVar42") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)*puVar4;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)*puVar4" (identifier "pEVar28") (= "=") (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 "uVar17 = uVar42 - 1;" (assignment_expression "uVar17 = uVar42 - 1" (identifier "uVar17") (= "=") (binary_expression "uVar42 - 1" (identifier "uVar42") (- "-") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pEVar28 < pEVar18)" (( "(") (binary_expression "pEVar28 < pEVar18" (identifier "pEVar28") (< "<") (identifier "pEVar18")) () ")")) (; ";")) (if_statement "if (uVar42 == 0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(uVar42 == 0)" (( "(") (binary_expression "uVar42 == 0" (identifier "uVar42") (== "==") (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 "uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;" (assignment_expression "uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4" (identifier "uVar17") (= "=") (binary_expression "((iVar11 + 1U) / uVar42 + 1) * 4" (parenthesized_expression "((iVar11 + 1U) / uVar42 + 1)" (( "(") (binary_expression "(iVar11 + 1U) / uVar42 + 1" (binary_expression "(iVar11 + 1U) / uVar42" (parenthesized_expression "(iVar11 + 1U)" (( "(") (binary_expression "iVar11 + 1U" (identifier "iVar11") (+ "+") (number_literal "1U")) () ")")) (/ "/") (identifier "uVar42")) (+ "+") (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 (uVar17 < 0x7f01) {\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }\n    else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" (if "if") (parenthesized_expression "(uVar17 < 0x7f01)" (( "(") (binary_expression "uVar17 < 0x7f01" (identifier "uVar17") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n      iVar11 = -(uVar17 + 7 & 0xfffffff8);\n      puVar10 = puVar3 + iVar11 + -0x38;\n      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);\n    }" ({ "{") (expression_statement "iVar11 = -(uVar17 + 7 & 0xfffffff8);" (assignment_expression "iVar11 = -(uVar17 + 7 & 0xfffffff8)" (identifier "iVar11") (= "=") (unary_expression "-(uVar17 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar17 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar17 + 7 & 0xfffffff8" (binary_expression "uVar17 + 7" (identifier "uVar17") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar10 = puVar3 + iVar11 + -0x38;" (assignment_expression "puVar10 = puVar3 + iVar11 + -0x38" (identifier "puVar10") (= "=") (binary_expression "puVar3 + iVar11 + -0x38" (binary_expression "puVar3 + iVar11" (identifier "puVar3") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "-0x38"))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)(puVar3 + iVar11 + -0x28)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + iVar11 + -0x28)" (( "(") (binary_expression "puVar3 + iVar11 + -0x28" (binary_expression "puVar3 + iVar11" (identifier "puVar3") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "-0x28")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" (else "else") (compound_statement "{\n      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" ({ "{") (expression_statement "pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20)" (parenthesized_expression "(**(code **)(pcVar36 + -0x7d50))" (( "(") (pointer_expression "**(code **)(pcVar36 + -0x7d50)" (* "*") (pointer_expression "*(code **)(pcVar36 + -0x7d50)" (* "*") (cast_expression "(code **)(pcVar36 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar36 + -0x7d50)" (( "(") (binary_expression "pcVar36 + -0x7d50" (identifier "pcVar36") (+ "+") (number_literal "-0x7d50")) () ")"))))) () ")")) (argument_list "(puVar3 + -0x20)" (( "(") (binary_expression "puVar3 + -0x20" (identifier "puVar3") (+ "+") (number_literal "-0x20")) () ")"))))) (; ";")) (expression_statement "pcVar36 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar36 = *(code **)(puVar3 + -0x28)" (identifier "pcVar36") (= "=") (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 "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar43 = 1;" (assignment_expression "uVar43 = 1" (identifier "uVar43") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar42 = 6;" (assignment_expression "uVar42 = 6" (identifier "uVar42") (= "=") (number_literal "6")) (; ";")) (do_statement "do {\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    } while (bVar1);" (do "do") (compound_statement "{\n      uVar41 = uVar17 + 1;\n      iVar16 = iVar11;\n      uVar8 = uVar42;\n      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }\n      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);\n      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;\n      iVar13 = iVar13 + (uVar43 & 1);\n      iVar11 = iVar16;\n      uVar17 = uVar41;\n      uVar42 = uVar8;\n    }" ({ "{") (expression_statement "uVar41 = uVar17 + 1;" (assignment_expression "uVar41 = uVar17 + 1" (identifier "uVar41") (= "=") (binary_expression "uVar17 + 1" (identifier "uVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar16 = iVar11;" (assignment_expression "iVar16 = iVar11" (identifier "iVar16") (= "=") (identifier "iVar11")) (; ";")) (expression_statement "uVar8 = uVar42;" (assignment_expression "uVar8 = uVar42" (identifier "uVar8") (= "=") (identifier "uVar42")) (; ";")) (if_statement "if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }" (if "if") (parenthesized_expression "((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0)" (( "(") (binary_expression "(uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0" (parenthesized_expression "(uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1))" (( "(") (binary_expression "uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)" (identifier "uVar43") (& "&") (pointer_expression "*(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)" (* "*") (cast_expression "(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (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 "pEVar30") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "iVar13 * 4" (identifier "iVar13") (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")"))))) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;\n        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }\n      }" ({ "{") (expression_statement "uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;" (assignment_expression "uVar8 = (uVar41 & 1) + 1 + uVar41 * 3" (identifier "uVar8") (= "=") (binary_expression "(uVar41 & 1) + 1 + uVar41 * 3" (binary_expression "(uVar41 & 1) + 1" (parenthesized_expression "(uVar41 & 1)" (( "(") (binary_expression "uVar41 & 1" (identifier "uVar41") (& "&") (number_literal "1")) () ")")) (+ "+") (number_literal "1")) (+ "+") (binary_expression "uVar41 * 3" (identifier "uVar41") (* "*") (number_literal "3")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {\n          uVar8 = uVar42 * uVar8;\n        }\n        else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }" (if "if") (parenthesized_expression "((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20" (binary_expression "(ulonglong)uVar42 * ZEXT48(pEVar18)" (cast_expression "(ulonglong)uVar42" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar42")) (* "*") (call_expression "ZEXT48(pEVar18)" (identifier "ZEXT48") (argument_list "(pEVar18)" (( "(") (identifier "pEVar18") () ")")))) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar8 = uVar42 * uVar8;\n        }" ({ "{") (expression_statement "uVar8 = uVar42 * uVar8;" (assignment_expression "uVar8 = uVar42 * uVar8" (identifier "uVar8") (= "=") (binary_expression "uVar42 * uVar8" (identifier "uVar42") (* "*") (identifier "uVar8"))) (; ";")) (} "}")) (else_clause "else {\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }" (else "else") (compound_statement "{\n          iVar16 = iVar11 + 1;\n          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;\n        }" ({ "{") (expression_statement "iVar16 = iVar11 + 1;" (assignment_expression "iVar16 = iVar11 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;" (assignment_expression "*(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42" (pointer_expression "*(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1)" (* "*") (cast_expression "(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar28->e_ident_magic_str + iVar11 * 4 + -1)" (( "(") (binary_expression "pEVar28->e_ident_magic_str + iVar11 * 4 + -1" (binary_expression "pEVar28->e_ident_magic_str + iVar11 * 4" (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "iVar11 * 4" (identifier "iVar11") (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (= "=") (identifier "uVar42")) (; ";")) (} "}")))) (} "}"))) (expression_statement "uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);" (assignment_expression "uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f)" (identifier "uVar43") (= "=") (binary_expression "uVar43 * 2 - ((int)uVar43 >> 0x1f)" (binary_expression "uVar43 * 2" (identifier "uVar43") (* "*") (number_literal "2")) (- "-") (parenthesized_expression "((int)uVar43 >> 0x1f)" (( "(") (binary_expression "(int)uVar43 >> 0x1f" (cast_expression "(int)uVar43" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar43")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;" (assignment_expression "bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3" (identifier "bVar1") (= "=") (binary_expression "uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3" (identifier "uVar17") (!= "!=") (binary_expression "((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3" (parenthesized_expression "((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1)" (( "(") (binary_expression "(uint)((int)&pEVar18[-1].e_shentsize + 1) | 1" (call_expression "(uint)((int)&pEVar18[-1].e_shentsize + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)&pEVar18[-1].e_shentsize + 1)" (( "(") (binary_expression "(int)&pEVar18[-1].e_shentsize + 1" (cast_expression "(int)&pEVar18[-1].e_shentsize" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar18[-1].e_shentsize" (& "&") (field_expression "pEVar18[-1].e_shentsize" (subscript_expression "pEVar18[-1]" (identifier "pEVar18") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shentsize")))) (+ "+") (number_literal "1")) () ")"))) (| "|") (number_literal "1")) () ")")) (/ "/") (number_literal "3")))) (; ";")) (expression_statement "iVar13 = iVar13 + (uVar43 & 1);" (assignment_expression "iVar13 = iVar13 + (uVar43 & 1)" (identifier "iVar13") (= "=") (binary_expression "iVar13 + (uVar43 & 1)" (identifier "iVar13") (+ "+") (parenthesized_expression "(uVar43 & 1)" (( "(") (binary_expression "uVar43 & 1" (identifier "uVar43") (& "&") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar11 = iVar16;" (assignment_expression "iVar11 = iVar16" (identifier "iVar11") (= "=") (identifier "iVar16")) (; ";")) (expression_statement "uVar17 = uVar41;" (assignment_expression "uVar17 = uVar41" (identifier "uVar17") (= "=") (identifier "uVar41")) (; ";")) (expression_statement "uVar42 = uVar8;" (assignment_expression "uVar42 = uVar8" (identifier "uVar42") (= "=") (identifier "uVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (; ";")) (if_statement "if (iVar16 == 0) {\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }\n    else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(uint *)piVar14[2] = uVar8;\n      piVar14[1] = 1;\n    }" ({ "{") (expression_statement "*(uint *)piVar14[2] = uVar8;" (assignment_expression "*(uint *)piVar14[2] = uVar8" (pointer_expression "*(uint *)piVar14[2]" (* "*") (cast_expression "(uint *)piVar14[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar14[2]" (identifier "piVar14") ([ "[") (number_literal "2") (] "]")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "piVar14[1] = 1;" (assignment_expression "piVar14[1] = 1" (subscript_expression "piVar14[1]" (identifier "piVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" (else "else") (compound_statement "{\n      pcVar39 = *(code **)(pcVar36 + -0x7dbc);\n      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;\n      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" ({ "{") (expression_statement "pcVar39 = *(code **)(pcVar36 + -0x7dbc);" (assignment_expression "pcVar39 = *(code **)(pcVar36 + -0x7dbc)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(pcVar36 + -0x7dbc)" (* "*") (cast_expression "(code **)(pcVar36 + -0x7dbc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar36 + -0x7dbc)" (( "(") (binary_expression "pcVar36 + -0x7dbc" (identifier "pcVar36") (+ "+") (number_literal "-0x7dbc")) () ")"))))) (; ";")) (expression_statement "*(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;" (assignment_expression "*(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8" (pointer_expression "*(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1)" (* "*") (cast_expression "(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar28->e_ident_magic_str + iVar16 * 4 + -1)" (( "(") (binary_expression "pEVar28->e_ident_magic_str + iVar16 * 4 + -1" (binary_expression "pEVar28->e_ident_magic_str + iVar16 * 4" (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "iVar16 * 4" (identifier "iVar16") (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "(*pcVar39)(piVar14,pEVar28,iVar16 + 1);" (call_expression "(*pcVar39)(piVar14,pEVar28,iVar16 + 1)" (parenthesized_expression "(*pcVar39)" (( "(") (pointer_expression "*pcVar39" (* "*") (identifier "pcVar39")) () ")")) (argument_list "(piVar14,pEVar28,iVar16 + 1)" (( "(") (identifier "piVar14") (, ",") (identifier "pEVar28") (, ",") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "pcVar36 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar36 = *(code **)(puVar3 + -0x28)" (identifier "pcVar36") (= "=") (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 "piVar31 = *(int **)(puVar3 + -0x20);" (assignment_expression "piVar31 = *(int **)(puVar3 + -0x20)" (identifier "piVar31") (= "=") (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 (piVar31 != (int *)0x0) {\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" (if "if") (parenthesized_expression "(piVar31 != (int *)0x0)" (( "(") (binary_expression "piVar31 != (int *)0x0" (identifier "piVar31") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (**(code **)(pcVar36 + -0x7a28))();\n      pcVar36 = *(code **)(puVar3 + -0x28);\n    }" ({ "{") (expression_statement "(**(code **)(pcVar36 + -0x7a28))();" (call_expression "(**(code **)(pcVar36 + -0x7a28))()" (parenthesized_expression "(**(code **)(pcVar36 + -0x7a28))" (( "(") (pointer_expression "**(code **)(pcVar36 + -0x7a28)" (* "*") (pointer_expression "*(code **)(pcVar36 + -0x7a28)" (* "*") (cast_expression "(code **)(pcVar36 + -0x7a28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar36 + -0x7a28)" (( "(") (binary_expression "pcVar36 + -0x7a28" (identifier "pcVar36") (+ "+") (number_literal "-0x7a28")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar36 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar36 = *(code **)(puVar3 + -0x28)" (identifier "pcVar36") (= "=") (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    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }" (else "else") (compound_statement "{\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);\n    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;\n    piVar14[1] = 1;\n    piVar31 = piVar14;\n    pEVar28 = pEVar18;\n    pEVar18 = pEVar27;\n    puVar10 = puVar3 + -0x38;\n  }" ({ "{") (expression_statement "pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750)" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750)" (( "(") (binary_expression "(int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750" (binary_expression "(int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc)" (binary_expression "(int)pEVar18 * 4" (cast_expression "(int)pEVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar18")) (* "*") (number_literal "4")) (+ "+") (pointer_expression "*(int *)(pcVar39 + 0x6affc)" (* "*") (cast_expression "(int *)(pcVar39 + 0x6affc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar39 + 0x6affc)" (( "(") (binary_expression "pcVar39 + 0x6affc" (identifier "pcVar39") (+ "+") (number_literal "0x6affc")) () ")"))))) (+ "+") (number_literal "0x3750")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;" (assignment_expression "*(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27" (pointer_expression "*(undefined4 *)piVar14[2]" (* "*") (cast_expression "(undefined4 *)piVar14[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar14[2]" (identifier "piVar14") ([ "[") (number_literal "2") (] "]")))) (= "=") (pointer_expression "*(undefined4 *)pEVar27" (* "*") (cast_expression "(undefined4 *)pEVar27" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar27")))) (; ";")) (expression_statement "piVar14[1] = 1;" (assignment_expression "piVar14[1] = 1" (subscript_expression "piVar14[1]" (identifier "piVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar31 = piVar14;" (assignment_expression "piVar31 = piVar14" (identifier "piVar31") (= "=") (identifier "piVar14")) (; ";")) (expression_statement "pEVar28 = pEVar18;" (assignment_expression "pEVar28 = pEVar18" (identifier "pEVar28") (= "=") (identifier "pEVar18")) (; ";")) (expression_statement "pEVar18 = pEVar27;" (assignment_expression "pEVar18 = pEVar27" (identifier "pEVar18") (= "=") (identifier "pEVar27")) (; ";")) (expression_statement "puVar10 = puVar3 + -0x38;" (assignment_expression "puVar10 = puVar3 + -0x38" (identifier "puVar10") (= "=") (binary_expression "puVar3 + -0x38" (identifier "puVar3") (+ "+") (number_literal "-0x38"))) (; ";")) (} "}")))) (if_statement "if (*(int *)(puVar3 + -0x1c) == *piVar6) {\n    return *piVar6;\n  }" (if "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 "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x1c)" (( "(") (binary_expression "puVar3 + -0x1c" (identifier "puVar3") (+ "+") (number_literal "-0x1c")) () ")")))) (== "==") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) () ")")) (compound_statement "{\n    return *piVar6;\n  }" ({ "{") (return_statement "return *piVar6;" (return "return") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (} "}"))) (expression_statement "pcVar39 = *(code **)(pcVar36 + -0x7b70);" (assignment_expression "pcVar39 = *(code **)(pcVar36 + -0x7b70)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(pcVar36 + -0x7b70)" (* "*") (cast_expression "(code **)(pcVar36 + -0x7b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar36 + -0x7b70)" (( "(") (binary_expression "pcVar36 + -0x7b70" (identifier "pcVar36") (+ "+") (number_literal "-0x7b70")) () ")"))))) (; ";")) (expression_statement "pcVar40 = __gmpz_probab_prime_p;" (assignment_expression "pcVar40 = __gmpz_probab_prime_p" (identifier "pcVar40") (= "=") (identifier "__gmpz_probab_prime_p")) (; ";")) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" (( "(") (pointer_expression "*pcVar39" (* "*") (identifier "pcVar39")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar36 = *(code **)(pcVar39 + 0x6ae78);" (assignment_expression "pcVar36 = *(code **)(pcVar39 + 0x6ae78)" (identifier "pcVar36") (= "=") (pointer_expression "*(code **)(pcVar39 + 0x6ae78)" (* "*") (cast_expression "(code **)(pcVar39 + 0x6ae78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar39 + 0x6ae78)" (( "(") (binary_expression "pcVar39 + 0x6ae78" (identifier "pcVar39") (+ "+") (number_literal "0x6ae78")) () ")"))))) (; ";")) (expression_statement "*(int **)(puVar10 + -0x24) = piVar14;" (assignment_expression "*(int **)(puVar10 + -0x24) = piVar14" (pointer_expression "*(int **)(puVar10 + -0x24)" (* "*") (cast_expression "(int **)(puVar10 + -0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x24)" (( "(") (binary_expression "puVar10 + -0x24" (identifier "puVar10") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "piVar14")) (; ";")) (expression_statement "*(int **)(puVar10 + -0x20) = piVar6;" (assignment_expression "*(int **)(puVar10 + -0x20) = piVar6" (pointer_expression "*(int **)(puVar10 + -0x20)" (* "*") (cast_expression "(int **)(puVar10 + -0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x20)" (( "(") (binary_expression "puVar10 + -0x20" (identifier "puVar10") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "piVar6")) (; ";")) (expression_statement "piVar14 = *(int **)(pcVar39 + 0x6b270);" (assignment_expression "piVar14 = *(int **)(pcVar39 + 0x6b270)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(pcVar39 + 0x6b270)" (* "*") (cast_expression "(int **)(pcVar39 + 0x6b270)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar39 + 0x6b270)" (( "(") (binary_expression "pcVar39 + 0x6b270" (identifier "pcVar39") (+ "+") (number_literal "0x6b270")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x18)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x18)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x18)" (( "(") (binary_expression "puVar10 + -0x18" (identifier "puVar10") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x1c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x1c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x1c)" (( "(") (binary_expression "puVar10 + -0x1c" (identifier "puVar10") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "pEVar30")) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)0xf4240" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)0xf4240" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xf4240"))) (; ";")) (expression_statement "*(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70;" (assignment_expression "*(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70" (pointer_expression "*(code **)(puVar10 + -0x88)" (* "*") (cast_expression "(code **)(puVar10 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x88)" (( "(") (binary_expression "puVar10 + -0x88" (identifier "puVar10") (+ "+") (number_literal "-0x88")) () ")")))) (= "=") (binary_expression "pcVar39 + 0x72d70" (identifier "pcVar39") (+ "+") (number_literal "0x72d70"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x10)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x10)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pEVar32")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x14) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x14) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x14)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x14)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x28)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x28)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x28)" (( "(") (binary_expression "puVar10 + -0x28" (identifier "puVar10") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "pEVar18")) (; ";")) (expression_statement "*(code **)(puVar10 + -4) = pcVar40;" (assignment_expression "*(code **)(puVar10 + -4) = pcVar40" (pointer_expression "*(code **)(puVar10 + -4)" (* "*") (cast_expression "(code **)(puVar10 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar40")) (; ";")) (expression_statement "*(undefined1 **)(puVar10 + -8) = puVar3 + -0x38;" (assignment_expression "*(undefined1 **)(puVar10 + -8) = puVar3 + -0x38" (pointer_expression "*(undefined1 **)(puVar10 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar10 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -8)" (( "(") (binary_expression "puVar10 + -8" (identifier "puVar10") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "puVar3 + -0x38" (identifier "puVar3") (+ "+") (number_literal "-0x38"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0xc) = param_6;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0xc) = param_6" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0xc)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar10 + -0xc)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "*(int *)(puVar10 + -0x2c) = *piVar14;" (assignment_expression "*(int *)(puVar10 + -0x2c) = *piVar14" (pointer_expression "*(int *)(puVar10 + -0x2c)" (* "*") (cast_expression "(int *)(puVar10 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x2c)" (( "(") (binary_expression "puVar10 + -0x2c" (identifier "puVar10") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (expression_statement "iVar11 = (*pcVar36)();" (assignment_expression "iVar11 = (*pcVar36)()" (identifier "iVar11") (= "=") (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar33 = (uint *)piVar31[2];" (assignment_expression "puVar33 = (uint *)piVar31[2]" (identifier "puVar33") (= "=") (cast_expression "(uint *)piVar31[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar31[2]" (identifier "piVar31") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar10 + -0x88)" (* "*") (cast_expression "(int *)(puVar10 + -0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x88)" (( "(") (binary_expression "puVar10 + -0x88" (identifier "puVar10") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "pEVar32 = (Elf32_Ehdr *)piVar31[1];" (assignment_expression "pEVar32 = (Elf32_Ehdr *)piVar31[1]" (identifier "pEVar32") (= "=") (cast_expression "(Elf32_Ehdr *)piVar31[1]" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar31[1]" (identifier "piVar31") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "uVar17 = *puVar33;" (assignment_expression "uVar17 = *puVar33" (identifier "uVar17") (= "=") (pointer_expression "*puVar33" (* "*") (identifier "puVar33"))) (; ";")) (if_statement "if (iVar11 < 1) {\n    pEVar20 = (Elf32_Ehdr *)0xf4240;\n    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);\n    iVar13 = *(int *)(puVar10 + -0x88);\n    if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;\n    *(uint **)(puVar10 + -0x6c) = puVar33;\n    piVar31 = (int *)(puVar10 + -0x74);\n    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;\n  }" (if "if") (parenthesized_expression "(iVar11 < 1)" (( "(") (binary_expression "iVar11 < 1" (identifier "iVar11") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    pEVar20 = (Elf32_Ehdr *)0xf4240;\n    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);\n    iVar13 = *(int *)(puVar10 + -0x88);\n    if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }\n    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;\n    *(uint **)(puVar10 + -0x6c) = puVar33;\n    piVar31 = (int *)(puVar10 + -0x74);\n    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;\n  }" ({ "{") (expression_statement "pEVar20 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)0xf4240" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)0xf4240" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xf4240"))) (; ";")) (expression_statement "iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);" (assignment_expression "iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(iVar13 + -0x7ab4))(piVar31)" (parenthesized_expression "(**(code **)(iVar13 + -0x7ab4))" (( "(") (pointer_expression "**(code **)(iVar13 + -0x7ab4)" (* "*") (pointer_expression "*(code **)(iVar13 + -0x7ab4)" (* "*") (cast_expression "(code **)(iVar13 + -0x7ab4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + -0x7ab4)" (( "(") (binary_expression "iVar13 + -0x7ab4" (identifier "iVar13") (+ "+") (number_literal "-0x7ab4")) () ")"))))) () ")")) (argument_list "(piVar31)" (( "(") (identifier "piVar31") () ")")))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar10 + -0x88)" (* "*") (cast_expression "(int *)(puVar10 + -0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x88)" (( "(") (binary_expression "puVar10 + -0x88" (identifier "puVar10") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (if_statement "if (iVar11 < 1) {\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }" (if "if") (parenthesized_expression "(iVar11 < 1)" (( "(") (binary_expression "iVar11 < 1" (identifier "iVar11") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      iVar11 = 0;\n      if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }\n      goto LAB_00032354;\n    }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (pEVar32 != (Elf32_Ehdr *)0x0) {\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }" (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"))) () ")")) (compound_statement "{\n        if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }\n      }" ({ "{") (if_statement "if (uVar17 < 3) {\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }\n        else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }" (if "if") (parenthesized_expression "(uVar17 < 3)" (( "(") (binary_expression "uVar17 < 3" (identifier "uVar17") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n          iVar11 = 2;\n          if (uVar17 != 2) {\n            iVar11 = 0;\n          }\n        }" ({ "{") (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" (identifier "iVar11") (= "=") (number_literal "2")) (; ";")) (if_statement "if (uVar17 != 2) {\n            iVar11 = 0;\n          }" (if "if") (parenthesized_expression "(uVar17 != 2)" (( "(") (binary_expression "uVar17 != 2" (identifier "uVar17") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n            iVar11 = 0;\n          }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }" (else "else") (compound_statement "{\n          uVar42 = 3;\n          if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }\n        }" ({ "{") (expression_statement "uVar42 = 3;" (assignment_expression "uVar42 = 3" (identifier "uVar42") (= "=") (number_literal "3")) (; ";")) (if_statement "if ((uVar17 & 1) != 0) {\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }" (if "if") (parenthesized_expression "((uVar17 & 1) != 0)" (( "(") (binary_expression "(uVar17 & 1) != 0" (parenthesized_expression "(uVar17 & 1)" (( "(") (binary_expression "uVar17 & 1" (identifier "uVar17") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);\n            iVar11 = 0;\n          }" ({ "{") (do_statement "do {\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            } while (uVar43 != 0);" (do "do") (compound_statement "{\n              if (uVar42 == 0) {\n                trap(7);\n              }\n              uVar43 = uVar17 % uVar42;\n              if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }\n              uVar42 = uVar42 + 2;\n            }" ({ "{") (if_statement "if (uVar42 == 0) {\n                trap(7);\n              }" (if "if") (parenthesized_expression "(uVar42 == 0)" (( "(") (binary_expression "uVar42 == 0" (identifier "uVar42") (== "==") (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 = uVar17 % uVar42;" (assignment_expression "uVar43 = uVar17 % uVar42" (identifier "uVar43") (= "=") (binary_expression "uVar17 % uVar42" (identifier "uVar17") (% "%") (identifier "uVar42"))) (; ";")) (if_statement "if (uVar17 / uVar42 < uVar42) {\n                iVar11 = 2;\n                goto LAB_00032354;\n              }" (if "if") (parenthesized_expression "(uVar17 / uVar42 < uVar42)" (( "(") (binary_expression "uVar17 / uVar42 < uVar42" (binary_expression "uVar17 / uVar42" (identifier "uVar17") (/ "/") (identifier "uVar42")) (< "<") (identifier "uVar42")) () ")")) (compound_statement "{\n                iVar11 = 2;\n                goto LAB_00032354;\n              }" ({ "{") (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" (identifier "iVar11") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_00032354;" (goto "goto") (statement_identifier "LAB_00032354") (; ";")) (} "}"))) (expression_statement "uVar42 = uVar42 + 2;" (assignment_expression "uVar42 = uVar42 + 2" (identifier "uVar42") (= "=") (binary_expression "uVar42 + 2" (identifier "uVar42") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar43 != 0)" (( "(") (binary_expression "uVar43 != 0" (identifier "uVar43") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (goto_statement "goto LAB_00032354;" (goto "goto") (statement_identifier "LAB_00032354") (; ";")) (} "}"))) (expression_statement "pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)-(int)pEVar32" (identifier "pEVar32") (= "=") (cast_expression "(Elf32_Ehdr *)-(int)pEVar32" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)pEVar32" (- "-") (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32"))))) (; ";")) (expression_statement "*(uint **)(puVar10 + -0x6c) = puVar33;" (assignment_expression "*(uint **)(puVar10 + -0x6c) = puVar33" (pointer_expression "*(uint **)(puVar10 + -0x6c)" (* "*") (cast_expression "(uint **)(puVar10 + -0x6c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x6c)" (( "(") (binary_expression "puVar10 + -0x6c" (identifier "puVar10") (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "puVar33")) (; ";")) (expression_statement "piVar31 = (int *)(puVar10 + -0x74);" (assignment_expression "piVar31 = (int *)(puVar10 + -0x74)" (identifier "piVar31") (= "=") (cast_expression "(int *)(puVar10 + -0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x74)" (( "(") (binary_expression "puVar10 + -0x74" (identifier "puVar10") (+ "+") (number_literal "-0x74")) () ")")))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0x70)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar10 + -0x70)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x70)" (( "(") (binary_expression "puVar10 + -0x70" (identifier "puVar10") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "pEVar32")) (; ";")) (} "}"))) (if_statement "if (pEVar32 != (Elf32_Ehdr *)0x0) {\n    uVar17 = uVar17 & 1;\n    iVar11 = 0;\n    if (uVar17 == 0) goto LAB_00032354;\n    pEVar20 = pEVar32;\n    if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }\n  }" (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"))) () ")")) (compound_statement "{\n    uVar17 = uVar17 & 1;\n    iVar11 = 0;\n    if (uVar17 == 0) goto LAB_00032354;\n    pEVar20 = pEVar32;\n    if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }\n  }" ({ "{") (expression_statement "uVar17 = uVar17 & 1;" (assignment_expression "uVar17 = uVar17 & 1" (identifier "uVar17") (= "=") (binary_expression "uVar17 & 1" (identifier "uVar17") (& "&") (number_literal "1"))) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar17 == 0) goto LAB_00032354;" (if "if") (parenthesized_expression "(uVar17 == 0)" (( "(") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00032354;" (goto "goto") (statement_identifier "LAB_00032354") (; ";"))) (expression_statement "pEVar20 = pEVar32;" (assignment_expression "pEVar20 = pEVar32" (identifier "pEVar20") (= "=") (identifier "pEVar32")) (; ";")) (if_statement "if ((int)pEVar32 < 10) {\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }\n    else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }" (if "if") (parenthesized_expression "((int)pEVar32 < 10)" (( "(") (binary_expression "(int)pEVar32 < 10" (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32")) (< "<") (number_literal "10")) () ")")) (compound_statement "{\n      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }" ({ "{") (expression_statement "uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);" (assignment_expression "uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c)" (identifier "uVar42") (= "=") (call_expression "(**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c)" (parenthesized_expression "(**(code **)(iVar13 + -0x7c24))" (( "(") (pointer_expression "**(code **)(iVar13 + -0x7c24)" (* "*") (pointer_expression "*(code **)(iVar13 + -0x7c24)" (* "*") (cast_expression "(code **)(iVar13 + -0x7c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + -0x7c24)" (( "(") (binary_expression "iVar13 + -0x7c24" (identifier "iVar13") (+ "+") (number_literal "-0x7c24")) () ")"))))) () ")")) (argument_list "(puVar33,pEVar32,0xc0cfd797,0x53e5645c)" (( "(") (identifier "puVar33") (, ",") (identifier "pEVar32") (, ",") (number_literal "0xc0cfd797") (, ",") (number_literal "0x53e5645c") () ")")))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar10 + -0x88)" (* "*") (cast_expression "(int *)(puVar10 + -0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x88)" (( "(") (binary_expression "puVar10 + -0x88" (identifier "puVar10") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }" (else "else") (compound_statement "{\n      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);\n      iVar13 = *(int *)(puVar10 + -0x88);\n    }" ({ "{") (expression_statement "uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);" (assignment_expression "uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797)" (identifier "uVar42") (= "=") (call_expression "(**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797)" (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 "(puVar33,pEVar32,0xc0cfd797)" (( "(") (identifier "puVar33") (, ",") (identifier "pEVar32") (, ",") (number_literal "0xc0cfd797") () ")")))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar10 + -0x88)" (* "*") (cast_expression "(int *)(puVar10 + -0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x88)" (( "(") (binary_expression "puVar10 + -0x88" (identifier "puVar10") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (} "}")))) (if_statement "if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }" (if "if") (parenthesized_expression "((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d))" (( "(") (binary_expression "(((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&\n       (uVar42 != (uVar42 / 0x1d) * 0x1d)" (parenthesized_expression "(((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17))))))" (( "(") (binary_expression "((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&\n        ((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))" (parenthesized_expression "((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd))))" (( "(") (binary_expression "(((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)) &&\n         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))" (parenthesized_expression "(((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7))" (( "(") (binary_expression "((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&\n          (uVar42 != (uVar42 / 7) * 7)" (parenthesized_expression "((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5))" (( "(") (binary_expression "(uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)" (parenthesized_expression "(uVar42 != (uVar42 / 3) * 3)" (( "(") (binary_expression "uVar42 != (uVar42 / 3) * 3" (identifier "uVar42") (!= "!=") (binary_expression "(uVar42 / 3) * 3" (parenthesized_expression "(uVar42 / 3)" (( "(") (binary_expression "uVar42 / 3" (identifier "uVar42") (/ "/") (number_literal "3")) () ")")) (* "*") (number_literal "3"))) () ")")) (&& "&&") (parenthesized_expression "(uVar42 != (uVar42 / 5) * 5)" (( "(") (binary_expression "uVar42 != (uVar42 / 5) * 5" (identifier "uVar42") (!= "!=") (binary_expression "(uVar42 / 5) * 5" (parenthesized_expression "(uVar42 / 5)" (( "(") (binary_expression "uVar42 / 5" (identifier "uVar42") (/ "/") (number_literal "5")) () ")")) (* "*") (number_literal "5"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar42 != (uVar42 / 7) * 7)" (( "(") (binary_expression "uVar42 != (uVar42 / 7) * 7" (identifier "uVar42") (!= "!=") (binary_expression "(uVar42 / 7) * 7" (parenthesized_expression "(uVar42 / 7)" (( "(") (binary_expression "uVar42 / 7" (identifier "uVar42") (/ "/") (number_literal "7")) () ")")) (* "*") (number_literal "7"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))" (( "(") (parenthesized_expression "(uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd))" (( "(") (binary_expression "uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)" (binary_expression "uVar42 != (uVar42 / 0xb) * 0xb" (identifier "uVar42") (!= "!=") (binary_expression "(uVar42 / 0xb) * 0xb" (parenthesized_expression "(uVar42 / 0xb)" (( "(") (binary_expression "uVar42 / 0xb" (identifier "uVar42") (/ "/") (number_literal "0xb")) () ")")) (* "*") (number_literal "0xb"))) (&& "&&") (parenthesized_expression "(uVar42 != (uVar42 / 0xd) * 0xd)" (( "(") (binary_expression "uVar42 != (uVar42 / 0xd) * 0xd" (identifier "uVar42") (!= "!=") (binary_expression "(uVar42 / 0xd) * 0xd" (parenthesized_expression "(uVar42 / 0xd)" (( "(") (binary_expression "uVar42 / 0xd" (identifier "uVar42") (/ "/") (number_literal "0xd")) () ")")) (* "*") (number_literal "0xd"))) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))" (( "(") (parenthesized_expression "(uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17))))" (( "(") (binary_expression "uVar42 != (uVar42 / 0x11) * 0x11 &&\n         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))" (binary_expression "uVar42 != (uVar42 / 0x11) * 0x11" (identifier "uVar42") (!= "!=") (binary_expression "(uVar42 / 0x11) * 0x11" (parenthesized_expression "(uVar42 / 0x11)" (( "(") (binary_expression "uVar42 / 0x11" (identifier "uVar42") (/ "/") (number_literal "0x11")) () ")")) (* "*") (number_literal "0x11"))) (&& "&&") (parenthesized_expression "((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))" (( "(") (parenthesized_expression "(uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17))" (( "(") (binary_expression "uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)" (binary_expression "uVar42 != (uVar42 / 0x13) * 0x13" (identifier "uVar42") (!= "!=") (binary_expression "(uVar42 / 0x13) * 0x13" (parenthesized_expression "(uVar42 / 0x13)" (( "(") (binary_expression "uVar42 / 0x13" (identifier "uVar42") (/ "/") (number_literal "0x13")) () ")")) (* "*") (number_literal "0x13"))) (&& "&&") (parenthesized_expression "(uVar42 != (uVar42 / 0x17) * 0x17)" (( "(") (binary_expression "uVar42 != (uVar42 / 0x17) * 0x17" (identifier "uVar42") (!= "!=") (binary_expression "(uVar42 / 0x17) * 0x17" (parenthesized_expression "(uVar42 / 0x17)" (( "(") (binary_expression "uVar42 / 0x17" (identifier "uVar42") (/ "/") (number_literal "0x17")) () ")")) (* "*") (number_literal "0x17"))) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar42 != (uVar42 / 0x1d) * 0x1d)" (( "(") (binary_expression "uVar42 != (uVar42 / 0x1d) * 0x1d" (identifier "uVar42") (!= "!=") (binary_expression "(uVar42 / 0x1d) * 0x1d" (parenthesized_expression "(uVar42 / 0x1d)" (( "(") (binary_expression "uVar42 / 0x1d" (identifier "uVar42") (/ "/") (number_literal "0x1d")) () ")")) (* "*") (number_literal "0x1d"))) () ")"))) () ")")) (compound_statement "{\n      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }\n      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);\n      iVar13 = *(int *)(puVar10 + -0x88);\n      pEVar20 = pEVar28;\n      goto LAB_00032354;\n    }" ({ "{") (expression_statement "uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);" (assignment_expression "uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2)" (identifier "uVar42") (= "=") (call_expression "(**(code **)(iVar13 + -0x7f14))(piVar31,2)" (parenthesized_expression "(**(code **)(iVar13 + -0x7f14))" (( "(") (pointer_expression "**(code **)(iVar13 + -0x7f14)" (* "*") (pointer_expression "*(code **)(iVar13 + -0x7f14)" (* "*") (cast_expression "(code **)(iVar13 + -0x7f14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + -0x7f14)" (( "(") (binary_expression "iVar13 + -0x7f14" (identifier "iVar13") (+ "+") (number_literal "-0x7f14")) () ")"))))) () ")")) (argument_list "(piVar31,2)" (( "(") (identifier "piVar31") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar10 + -0x88)" (* "*") (cast_expression "(int *)(puVar10 + -0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x88)" (( "(") (binary_expression "puVar10 + -0x88" (identifier "puVar10") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (if_statement "if (0x1f < uVar42) {\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }" (if "if") (parenthesized_expression "(0x1f < uVar42)" (( "(") (binary_expression "0x1f < uVar42" (number_literal "0x1f") (< "<") (identifier "uVar42")) () ")")) (compound_statement "{\n        iVar16 = 0;\n        iVar11 = 0;\n        uVar43 = 0x1f;\n        do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);\n      }" ({ "{") (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar43 = 0x1f;" (assignment_expression "uVar43 = 0x1f" (identifier "uVar43") (= "=") (number_literal "0x1f")) (; ";")) (do_statement "do {\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        } while (uVar8 < uVar42);" (do "do") (compound_statement "{\n          uVar8 = 3;\n          do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);\n          uVar8 = uVar43 + 2;\n          iVar16 = (uint)(uVar8 < uVar43) + iVar16;\n          iVar11 = iVar26;\n          uVar43 = uVar8;\n        }" ({ "{") (expression_statement "uVar8 = 3;" (assignment_expression "uVar8 = 3" (identifier "uVar8") (= "=") (number_literal "3")) (; ";")) (do_statement "do {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          } while (uVar41 != 0);" (do "do") (compound_statement "{\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar41 = uVar43 % uVar8;\n            if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }\n            uVar8 = uVar8 + 2;\n            iVar26 = iVar11;\n          }" ({ "{") (if_statement "if (uVar8 == 0) {\n              trap(7);\n            }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (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 "uVar41 = uVar43 % uVar8;" (assignment_expression "uVar41 = uVar43 % uVar8" (identifier "uVar41") (= "=") (binary_expression "uVar43 % uVar8" (identifier "uVar43") (% "%") (identifier "uVar8"))) (; ";")) (if_statement "if (uVar43 / uVar8 < uVar8) {\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }" (if "if") (parenthesized_expression "(uVar43 / uVar8 < uVar8)" (( "(") (binary_expression "uVar43 / uVar8 < uVar8" (binary_expression "uVar43 / uVar8" (identifier "uVar43") (/ "/") (identifier "uVar8")) (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }\nLAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;\n              break;\n            }" ({ "{") (if_statement "if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }\n              else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }" (if "if") (parenthesized_expression "(iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0)" (( "(") (binary_expression "iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0" (binary_expression "iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20)" (binary_expression "iVar16 * uVar17" (identifier "iVar16") (* "*") (identifier "uVar17")) (+ "+") (cast_expression "(int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20" (binary_expression "(ulonglong)uVar17 * (ulonglong)uVar43" (cast_expression "(ulonglong)uVar17" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar17")) (* "*") (cast_expression "(ulonglong)uVar43" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar43"))) (>> ">>") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                iVar26 = iVar11 + 1;\n                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);\n              }" ({ "{") (expression_statement "iVar26 = iVar11 + 1;" (assignment_expression "iVar26 = iVar11 + 1" (identifier "iVar26") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);" (assignment_expression "uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43)" (identifier "uVar17") (= "=") (call_expression "(uint)((ulonglong)uVar17 * (ulonglong)uVar43)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar17 * (ulonglong)uVar43)" (( "(") (binary_expression "(ulonglong)uVar17 * (ulonglong)uVar43" (cast_expression "(ulonglong)uVar17" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar17")) (* "*") (cast_expression "(ulonglong)uVar43" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar43"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }" (else "else") (compound_statement "{\n                *(uint *)(puVar10 + -0x7c) = uVar42;\n                *(int *)(puVar10 + -0x80) = iVar11;\n                if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }\n                uVar17 = uVar43;\n                if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }\nLAB_0003295c:\n                iVar26 = 1;\n                iVar11 = 0;\n              }" ({ "{") (expression_statement "*(uint *)(puVar10 + -0x7c) = uVar42;" (assignment_expression "*(uint *)(puVar10 + -0x7c) = uVar42" (pointer_expression "*(uint *)(puVar10 + -0x7c)" (* "*") (cast_expression "(uint *)(puVar10 + -0x7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x7c)" (( "(") (binary_expression "puVar10 + -0x7c" (identifier "puVar10") (+ "+") (number_literal "-0x7c")) () ")")))) (= "=") (identifier "uVar42")) (; ";")) (expression_statement "*(int *)(puVar10 + -0x80) = iVar11;" (assignment_expression "*(int *)(puVar10 + -0x80) = iVar11" (pointer_expression "*(int *)(puVar10 + -0x80)" (* "*") (cast_expression "(int *)(puVar10 + -0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x80)" (( "(") (binary_expression "puVar10 + -0x80" (identifier "puVar10") (+ "+") (number_literal "-0x80")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (if_statement "if ((int)pEVar32 < 10) {\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }\n                else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }" (if "if") (parenthesized_expression "((int)pEVar32 < 10)" (( "(") (binary_expression "(int)pEVar32 < 10" (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32")) (< "<") (number_literal "10")) () ")")) (compound_statement "{\n                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                }" ({ "{") (expression_statement "uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);" (assignment_expression "uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,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 "(puVar33,pEVar32,uVar17,0)" (( "(") (identifier "puVar33") (, ",") (identifier "pEVar32") (, ",") (identifier "uVar17") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar10 + -0x88)" (* "*") (cast_expression "(int *)(puVar10 + -0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x88)" (( "(") (binary_expression "puVar10 + -0x88" (identifier "puVar10") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar10 + -0x80);" (assignment_expression "iVar11 = *(int *)(puVar10 + -0x80)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar10 + -0x80)" (* "*") (cast_expression "(int *)(puVar10 + -0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x80)" (( "(") (binary_expression "puVar10 + -0x80" (identifier "puVar10") (+ "+") (number_literal "-0x80")) () ")"))))) (; ";")) (expression_statement "uVar42 = *(uint *)(puVar10 + -0x7c);" (assignment_expression "uVar42 = *(uint *)(puVar10 + -0x7c)" (identifier "uVar42") (= "=") (pointer_expression "*(uint *)(puVar10 + -0x7c)" (* "*") (cast_expression "(uint *)(puVar10 + -0x7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x7c)" (( "(") (binary_expression "puVar10 + -0x7c" (identifier "puVar10") (+ "+") (number_literal "-0x7c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }" (else "else") (compound_statement "{\n                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  uVar42 = *(uint *)(puVar10 + -0x7c);\n                  iVar11 = *(int *)(puVar10 + -0x80);\n                }" ({ "{") (expression_statement "uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);" (assignment_expression "uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17)" (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 "(puVar33,pEVar32,uVar17)" (( "(") (identifier "puVar33") (, ",") (identifier "pEVar32") (, ",") (identifier "uVar17") () ")")))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar10 + -0x88)" (* "*") (cast_expression "(int *)(puVar10 + -0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x88)" (( "(") (binary_expression "puVar10 + -0x88" (identifier "puVar10") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "uVar42 = *(uint *)(puVar10 + -0x7c);" (assignment_expression "uVar42 = *(uint *)(puVar10 + -0x7c)" (identifier "uVar42") (= "=") (pointer_expression "*(uint *)(puVar10 + -0x7c)" (* "*") (cast_expression "(uint *)(puVar10 + -0x7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x7c)" (( "(") (binary_expression "puVar10 + -0x7c" (identifier "puVar10") (+ "+") (number_literal "-0x7c")) () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar10 + -0x80);" (assignment_expression "iVar11 = *(int *)(puVar10 + -0x80)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar10 + -0x80)" (* "*") (cast_expression "(int *)(puVar10 + -0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x80)" (( "(") (binary_expression "puVar10 + -0x80" (identifier "puVar10") (+ "+") (number_literal "-0x80")) () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar17 = uVar43;" (assignment_expression "uVar17 = uVar43" (identifier "uVar17") (= "=") (identifier "uVar43")) (; ";")) (if_statement "if (iVar11 + -1 != -1) {\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }" (if "if") (parenthesized_expression "(iVar11 + -1 != -1)" (( "(") (binary_expression "iVar11 + -1 != -1" (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }\n                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  pEVar20 = pEVar32;\n                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);\n                  iVar11 = 0;\n                  iVar13 = *(int *)(puVar10 + -0x88);\n                  if (iVar26 == 0) goto LAB_00032354;\n                  (**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);\n                }" ({ "{") (if_statement "if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {\n                    trap(7);\n                  }" (if "if") (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0)" (( "(") (binary_expression "*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -1) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -1) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -1) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -1) * 4" (parenthesized_expression "(iVar11 + -1)" (( "(") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (== "==") (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") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0)" (( "(") (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68)" (identifier "uVar8") (% "%") (pointer_expression "*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -1) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -1) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -1) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -1) * 4" (parenthesized_expression "(iVar11 + -1)" (( "(") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    if (iVar11 + -2 == -1) goto LAB_0003295c;\n                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }\n                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" ({ "{") (if_statement "if (iVar11 + -2 == -1) goto LAB_0003295c;" (if "if") (parenthesized_expression "(iVar11 + -2 == -1)" (( "(") (binary_expression "iVar11 + -2 == -1" (binary_expression "iVar11 + -2" (identifier "iVar11") (+ "+") (number_literal "-2")) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0003295c;" (goto "goto") (statement_identifier "LAB_0003295c") (; ";"))) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {\n                      trap(7);\n                    }" (if "if") (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0)" (( "(") (binary_expression "*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -2) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -2) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -2) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -2) * 4" (parenthesized_expression "(iVar11 + -2)" (( "(") (binary_expression "iVar11 + -2" (identifier "iVar11") (+ "+") (number_literal "-2")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (== "==") (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") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" (if "if") (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0)" (( "(") (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68)" (identifier "uVar8") (% "%") (pointer_expression "*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -2) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -2) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -2) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -2) * 4" (parenthesized_expression "(iVar11 + -2)" (( "(") (binary_expression "iVar11 + -2" (identifier "iVar11") (+ "+") (number_literal "-2")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      if (iVar11 + -3 == -1) goto LAB_0003295c;\n                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }\n                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" ({ "{") (if_statement "if (iVar11 + -3 == -1) goto LAB_0003295c;" (if "if") (parenthesized_expression "(iVar11 + -3 == -1)" (( "(") (binary_expression "iVar11 + -3 == -1" (binary_expression "iVar11 + -3" (identifier "iVar11") (+ "+") (number_literal "-3")) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0003295c;" (goto "goto") (statement_identifier "LAB_0003295c") (; ";"))) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {\n                        trap(7);\n                      }" (if "if") (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0)" (( "(") (binary_expression "*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -3) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -3) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -3) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -3) * 4" (parenthesized_expression "(iVar11 + -3)" (( "(") (binary_expression "iVar11 + -3" (identifier "iVar11") (+ "+") (number_literal "-3")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (== "==") (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") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" (if "if") (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0)" (( "(") (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68)" (identifier "uVar8") (% "%") (pointer_expression "*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -3) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -3) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -3) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -3) * 4" (parenthesized_expression "(iVar11 + -3)" (( "(") (binary_expression "iVar11 + -3" (identifier "iVar11") (+ "+") (number_literal "-3")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        if (iVar11 + -4 == -1) goto LAB_0003295c;\n                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }\n                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" ({ "{") (if_statement "if (iVar11 + -4 == -1) goto LAB_0003295c;" (if "if") (parenthesized_expression "(iVar11 + -4 == -1)" (( "(") (binary_expression "iVar11 + -4 == -1" (binary_expression "iVar11 + -4" (identifier "iVar11") (+ "+") (number_literal "-4")) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0003295c;" (goto "goto") (statement_identifier "LAB_0003295c") (; ";"))) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {\n                          trap(7);\n                        }" (if "if") (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0)" (( "(") (binary_expression "*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -4) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -4) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -4) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -4) * 4" (parenthesized_expression "(iVar11 + -4)" (( "(") (binary_expression "iVar11 + -4" (identifier "iVar11") (+ "+") (number_literal "-4")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (== "==") (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") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" (if "if") (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0)" (( "(") (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68)" (identifier "uVar8") (% "%") (pointer_expression "*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -4) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -4) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -4) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -4) * 4" (parenthesized_expression "(iVar11 + -4)" (( "(") (binary_expression "iVar11 + -4" (identifier "iVar11") (+ "+") (number_literal "-4")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          if (iVar11 + -5 == -1) goto LAB_0003295c;\n                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }\n                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" ({ "{") (if_statement "if (iVar11 + -5 == -1) goto LAB_0003295c;" (if "if") (parenthesized_expression "(iVar11 + -5 == -1)" (( "(") (binary_expression "iVar11 + -5 == -1" (binary_expression "iVar11 + -5" (identifier "iVar11") (+ "+") (number_literal "-5")) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0003295c;" (goto "goto") (statement_identifier "LAB_0003295c") (; ";"))) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {\n                            trap(7);\n                          }" (if "if") (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0)" (( "(") (binary_expression "*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -5) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -5) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -5) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -5) * 4" (parenthesized_expression "(iVar11 + -5)" (( "(") (binary_expression "iVar11 + -5" (identifier "iVar11") (+ "+") (number_literal "-5")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (== "==") (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") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" (if "if") (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0)" (( "(") (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68)" (identifier "uVar8") (% "%") (pointer_expression "*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -5) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -5) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -5) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -5) * 4" (parenthesized_expression "(iVar11 + -5)" (( "(") (binary_expression "iVar11 + -5" (identifier "iVar11") (+ "+") (number_literal "-5")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                            if (iVar11 + -6 == -1) goto LAB_0003295c;\n                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }\n                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" ({ "{") (if_statement "if (iVar11 + -6 == -1) goto LAB_0003295c;" (if "if") (parenthesized_expression "(iVar11 + -6 == -1)" (( "(") (binary_expression "iVar11 + -6 == -1" (binary_expression "iVar11 + -6" (identifier "iVar11") (+ "+") (number_literal "-6")) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0003295c;" (goto "goto") (statement_identifier "LAB_0003295c") (; ";"))) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {\n                              trap(7);\n                            }" (if "if") (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0)" (( "(") (binary_expression "*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -6) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -6) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -6) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -6) * 4" (parenthesized_expression "(iVar11 + -6)" (( "(") (binary_expression "iVar11 + -6" (identifier "iVar11") (+ "+") (number_literal "-6")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (== "==") (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") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }" (if "if") (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0)" (( "(") (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68)" (identifier "uVar8") (% "%") (pointer_expression "*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -6) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -6) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -6) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -6) * 4" (parenthesized_expression "(iVar11 + -6)" (( "(") (binary_expression "iVar11 + -6" (identifier "iVar11") (+ "+") (number_literal "-6")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                              if (iVar11 + -7 == -1) goto LAB_0003295c;\n                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }\n                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }" ({ "{") (if_statement "if (iVar11 + -7 == -1) goto LAB_0003295c;" (if "if") (parenthesized_expression "(iVar11 + -7 == -1)" (( "(") (binary_expression "iVar11 + -7 == -1" (binary_expression "iVar11 + -7" (identifier "iVar11") (+ "+") (number_literal "-7")) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0003295c;" (goto "goto") (statement_identifier "LAB_0003295c") (; ";"))) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {\n                                trap(7);\n                              }" (if "if") (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0)" (( "(") (binary_expression "*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -7) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -7) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -7) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -7) * 4" (parenthesized_expression "(iVar11 + -7)" (( "(") (binary_expression "iVar11 + -7" (identifier "iVar11") (+ "+") (number_literal "-7")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (== "==") (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") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }" (if "if") (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0)" (( "(") (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68)" (identifier "uVar8") (% "%") (pointer_expression "*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -7) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -7) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -7) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -7) * 4" (parenthesized_expression "(iVar11 + -7)" (( "(") (binary_expression "iVar11 + -7" (identifier "iVar11") (+ "+") (number_literal "-7")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                                if (iVar11 + -8 == -1) goto LAB_0003295c;\n                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }\n                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }" ({ "{") (if_statement "if (iVar11 + -8 == -1) goto LAB_0003295c;" (if "if") (parenthesized_expression "(iVar11 + -8 == -1)" (( "(") (binary_expression "iVar11 + -8 == -1" (binary_expression "iVar11 + -8" (identifier "iVar11") (+ "+") (number_literal "-8")) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0003295c;" (goto "goto") (statement_identifier "LAB_0003295c") (; ";"))) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {\n                                  trap(7);\n                                }" (if "if") (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0)" (( "(") (binary_expression "*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -8) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -8) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -8) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -8) * 4" (parenthesized_expression "(iVar11 + -8)" (( "(") (binary_expression "iVar11 + -8" (identifier "iVar11") (+ "+") (number_literal "-8")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (== "==") (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") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }" (if "if") (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0)" (( "(") (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68)" (identifier "uVar8") (% "%") (pointer_expression "*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -8) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -8) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -8) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -8) * 4" (parenthesized_expression "(iVar11 + -8)" (( "(") (binary_expression "iVar11 + -8" (identifier "iVar11") (+ "+") (number_literal "-8")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                                  if (iVar11 + -9 == -1) goto LAB_0003295c;\n                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }\n                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }\n                                }" ({ "{") (if_statement "if (iVar11 + -9 == -1) goto LAB_0003295c;" (if "if") (parenthesized_expression "(iVar11 + -9 == -1)" (( "(") (binary_expression "iVar11 + -9 == -1" (binary_expression "iVar11 + -9" (identifier "iVar11") (+ "+") (number_literal "-9")) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0003295c;" (goto "goto") (statement_identifier "LAB_0003295c") (; ";"))) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {\n                                    trap(7);\n                                  }" (if "if") (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0)" (( "(") (binary_expression "*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -9) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -9) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -9) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -9) * 4" (parenthesized_expression "(iVar11 + -9)" (( "(") (binary_expression "iVar11 + -9" (identifier "iVar11") (+ "+") (number_literal "-9")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (== "==") (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") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }" (if "if") (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0)" (( "(") (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68)" (identifier "uVar8") (% "%") (pointer_expression "*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -9) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -9) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -9) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -9) * 4" (parenthesized_expression "(iVar11 + -9)" (( "(") (binary_expression "iVar11 + -9" (identifier "iVar11") (+ "+") (number_literal "-9")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                                    if (iVar11 + -10 == -1) goto LAB_0003295c;\n                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }\n                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }\n                                  }" ({ "{") (if_statement "if (iVar11 + -10 == -1) goto LAB_0003295c;" (if "if") (parenthesized_expression "(iVar11 + -10 == -1)" (( "(") (binary_expression "iVar11 + -10 == -1" (binary_expression "iVar11 + -10" (identifier "iVar11") (+ "+") (number_literal "-10")) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0003295c;" (goto "goto") (statement_identifier "LAB_0003295c") (; ";"))) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {\n                                      trap(7);\n                                    }" (if "if") (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0)" (( "(") (binary_expression "*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -10) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -10) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -10) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -10) * 4" (parenthesized_expression "(iVar11 + -10)" (( "(") (binary_expression "iVar11 + -10" (identifier "iVar11") (+ "+") (number_literal "-10")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (== "==") (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") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       ) {\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }" (if "if") (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0\n                                       )" (( "(") (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68)" (identifier "uVar8") (% "%") (pointer_expression "*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -10) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -10) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -10) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -10) * 4" (parenthesized_expression "(iVar11 + -10)" (( "(") (binary_expression "iVar11 + -10" (identifier "iVar11") (+ "+") (number_literal "-10")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;\n                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }\n                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }\n                                    }" ({ "{") (if_statement "if (iVar11 + -0xb == -1) goto LAB_0003295c;" (if "if") (parenthesized_expression "(iVar11 + -0xb == -1)" (( "(") (binary_expression "iVar11 + -0xb == -1" (binary_expression "iVar11 + -0xb" (identifier "iVar11") (+ "+") (number_literal "-0xb")) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0003295c;" (goto "goto") (statement_identifier "LAB_0003295c") (; ";"))) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {\n                                        trap(7);\n                                      }" (if "if") (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0)" (( "(") (binary_expression "*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -0xb) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xb) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -0xb) * 4" (parenthesized_expression "(iVar11 + -0xb)" (( "(") (binary_expression "iVar11 + -0xb" (identifier "iVar11") (+ "+") (number_literal "-0xb")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (== "==") (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") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0) {\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }" (if "if") (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0)" (( "(") (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)\n                                          != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" (identifier "uVar8") (% "%") (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -0xb) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -0xb) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xb) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -0xb) * 4" (parenthesized_expression "(iVar11 + -0xb)" (( "(") (binary_expression "iVar11 + -0xb" (identifier "iVar11") (+ "+") (number_literal "-0xb")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;\n                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }\n                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }\n                                      }" ({ "{") (if_statement "if (iVar11 + -0xc == -1) goto LAB_0003295c;" (if "if") (parenthesized_expression "(iVar11 + -0xc == -1)" (( "(") (binary_expression "iVar11 + -0xc == -1" (binary_expression "iVar11 + -0xc" (identifier "iVar11") (+ "+") (number_literal "-0xc")) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0003295c;" (goto "goto") (statement_identifier "LAB_0003295c") (; ";"))) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {\n                                          trap(7);\n                                        }" (if "if") (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0)" (( "(") (binary_expression "*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -0xc) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xc) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -0xc) * 4" (parenthesized_expression "(iVar11 + -0xc)" (( "(") (binary_expression "iVar11 + -0xc" (identifier "iVar11") (+ "+") (number_literal "-0xc")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (== "==") (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") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0) {\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }" (if "if") (parenthesized_expression "(uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0)" (( "(") (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)\n                                            != 0" (binary_expression "uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" (identifier "uVar8") (% "%") (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -0xc) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -0xc) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xc) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -0xc) * 4" (parenthesized_expression "(iVar11 + -0xc)" (( "(") (binary_expression "iVar11 + -0xc" (identifier "iVar11") (+ "+") (number_literal "-0xc")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;\n                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }\n                                          if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }\n                                        }" ({ "{") (if_statement "if (iVar11 + -0xd == -1) goto LAB_0003295c;" (if "if") (parenthesized_expression "(iVar11 + -0xd == -1)" (( "(") (binary_expression "iVar11 + -0xd == -1" (binary_expression "iVar11 + -0xd" (identifier "iVar11") (+ "+") (number_literal "-0xd")) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0003295c;" (goto "goto") (statement_identifier "LAB_0003295c") (; ";"))) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)\n                                          {\n                                            trap(7);\n                                          }" (if "if") (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)" (( "(") (binary_expression "*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -0xd) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -0xd) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xd) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -0xd) * 4" (parenthesized_expression "(iVar11 + -0xd)" (( "(") (binary_expression "iVar11 + -0xd" (identifier "iVar11") (+ "+") (number_literal "-0xd")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (== "==") (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") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }" (if "if") (parenthesized_expression "(uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0)" (( "(") (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68)" (identifier "uVar8") (% "%") (pointer_expression "*(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68)" (( "(") (binary_expression "puVar10 +\n                                                               (iVar11 + -0xd) * 4 + -0x68" (binary_expression "puVar10 +\n                                                               (iVar11 + -0xd) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -0xd) * 4" (parenthesized_expression "(iVar11 + -0xd)" (( "(") (binary_expression "iVar11 + -0xd" (identifier "iVar11") (+ "+") (number_literal "-0xd")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;\n                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }\n                                            if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }\n                                          }" ({ "{") (if_statement "if (iVar11 + -0xe == -1) goto LAB_0003295c;" (if "if") (parenthesized_expression "(iVar11 + -0xe == -1)" (( "(") (binary_expression "iVar11 + -0xe == -1" (binary_expression "iVar11 + -0xe" (identifier "iVar11") (+ "+") (number_literal "-0xe")) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0003295c;" (goto "goto") (statement_identifier "LAB_0003295c") (; ";"))) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0) {\n                                              trap(7);\n                                            }" (if "if") (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0)" (( "(") (binary_expression "*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==\n                                                0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -0xe) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -0xe) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xe) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -0xe) * 4" (parenthesized_expression "(iVar11 + -0xe)" (( "(") (binary_expression "iVar11 + -0xe" (identifier "iVar11") (+ "+") (number_literal "-0xe")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (== "==") (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") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)\n                                            {\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }" (if "if") (parenthesized_expression "(uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)" (( "(") (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68)" (identifier "uVar8") (% "%") (pointer_expression "*(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68)" (( "(") (binary_expression "puVar10 +\n                                                                 (iVar11 + -0xe) * 4 + -0x68" (binary_expression "puVar10 +\n                                                                 (iVar11 + -0xe) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -0xe) * 4" (parenthesized_expression "(iVar11 + -0xe)" (( "(") (binary_expression "iVar11 + -0xe" (identifier "iVar11") (+ "+") (number_literal "-0xe")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;\n                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }\n                                              iVar26 = 1;\n                                              if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }\n                                            }" ({ "{") (if_statement "if (iVar11 + -0xf == -1) goto LAB_0003295c;" (if "if") (parenthesized_expression "(iVar11 + -0xf == -1)" (( "(") (binary_expression "iVar11 + -0xf == -1" (binary_expression "iVar11 + -0xf" (identifier "iVar11") (+ "+") (number_literal "-0xf")) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0003295c;" (goto "goto") (statement_identifier "LAB_0003295c") (; ";"))) (if_statement "if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0) {\n                                                trap(7);\n                                              }" (if "if") (parenthesized_expression "(*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0)" (( "(") (binary_expression "*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)\n                                                  == 0" (pointer_expression "*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + (iVar11 + -0xf) * 4 + -0x68)" (( "(") (binary_expression "puVar10 + (iVar11 + -0xf) * 4 + -0x68" (binary_expression "puVar10 + (iVar11 + -0xf) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -0xf) * 4" (parenthesized_expression "(iVar11 + -0xf)" (( "(") (binary_expression "iVar11 + -0xf" (identifier "iVar11") (+ "+") (number_literal "-0xf")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (== "==") (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 "iVar26 = 1;" (assignment_expression "iVar26 = 1" (identifier "iVar26") (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 ) {\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }" (if "if") (parenthesized_expression "(uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0\n                                                 )" (( "(") (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0" (binary_expression "uVar8 % *(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68)" (identifier "uVar8") (% "%") (pointer_expression "*(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68)" (( "(") (binary_expression "puVar10 +\n                                                                   (iVar11 + -0xf) * 4 + -0x68" (binary_expression "puVar10 +\n                                                                   (iVar11 + -0xf) * 4" (identifier "puVar10") (+ "+") (binary_expression "(iVar11 + -0xf) * 4" (parenthesized_expression "(iVar11 + -0xf)" (( "(") (binary_expression "iVar11 + -0xf" (identifier "iVar11") (+ "+") (number_literal "-0xf")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                                                iVar11 = 0;\n                                                goto LAB_00032678;\n                                              }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00032678;" (goto "goto") (statement_identifier "LAB_00032678") (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "pEVar20 = pEVar32;" (assignment_expression "pEVar20 = pEVar32" (identifier "pEVar20") (= "=") (identifier "pEVar32")) (; ";")) (expression_statement "iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);" (assignment_expression "iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33)" (identifier "iVar26") (= "=") (call_expression "(**(code **)(iVar13 + -0x7b80))(puVar33)" (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 "(puVar33)" (( "(") (identifier "puVar33") () ")")))) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar10 + -0x88)" (* "*") (cast_expression "(int *)(puVar10 + -0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x88)" (( "(") (binary_expression "puVar10 + -0x88" (identifier "puVar10") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (if_statement "if (iVar26 == 0) goto LAB_00032354;" (if "if") (parenthesized_expression "(iVar26 == 0)" (( "(") (binary_expression "iVar26 == 0" (identifier "iVar26") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00032354;" (goto "goto") (statement_identifier "LAB_00032354") (; ";"))) (expression_statement "(**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770);" (call_expression "(**(code **)(iVar13 + -0x7c20))\n                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770)" (parenthesized_expression "(**(code **)(iVar13 + -0x7c20))" (( "(") (pointer_expression "**(code **)(iVar13 + -0x7c20)" (* "*") (pointer_expression "*(code **)(iVar13 + -0x7c20)" (* "*") (cast_expression "(code **)(iVar13 + -0x7c20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + -0x7c20)" (( "(") (binary_expression "iVar13 + -0x7c20" (identifier "iVar13") (+ "+") (number_literal "-0x7c20")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,\n                             *(int *)(iVar13 + -0x7fd4) + 0x3770)" (( "(") (binary_expression "*(int *)(iVar13 + -0x7fd4) + 0x37cc" (pointer_expression "*(int *)(iVar13 + -0x7fd4)" (* "*") (cast_expression "(int *)(iVar13 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + -0x7fd4)" (( "(") (binary_expression "iVar13 + -0x7fd4" (identifier "iVar13") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x37cc")) (, ",") (number_literal "0x81") (, ",") (binary_expression "*(int *)(iVar13 + -0x7fd4) + 0x3770" (pointer_expression "*(int *)(iVar13 + -0x7fd4)" (* "*") (cast_expression "(int *)(iVar13 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + -0x7fd4)" (( "(") (binary_expression "iVar13 + -0x7fd4" (identifier "iVar13") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x3770")) () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0003295c:\n                iVar26 = 1;" (statement_identifier "LAB_0003295c") (: ":") (expression_statement "iVar26 = 1;" (assignment_expression "iVar26 = 1" (identifier "iVar26") (= "=") (number_literal "1")) (; ";"))) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_00032678:\n              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;" (statement_identifier "LAB_00032678") (: ":") (expression_statement "*(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;" (assignment_expression "*(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43" (pointer_expression "*(uint *)(puVar10 + iVar11 * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar10 + iVar11 * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + iVar11 * 4 + -0x68)" (( "(") (binary_expression "puVar10 + iVar11 * 4 + -0x68" (binary_expression "puVar10 + iVar11 * 4" (identifier "puVar10") (+ "+") (binary_expression "iVar11 * 4" (identifier "iVar11") (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "uVar43")) (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uVar8 = uVar8 + 2;" (assignment_expression "uVar8 = uVar8 + 2" (identifier "uVar8") (= "=") (binary_expression "uVar8 + 2" (identifier "uVar8") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar26 = iVar11;" (assignment_expression "iVar26 = iVar11" (identifier "iVar26") (= "=") (identifier "iVar11")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar41 != 0)" (( "(") (binary_expression "uVar41 != 0" (identifier "uVar41") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "uVar8 = uVar43 + 2;" (assignment_expression "uVar8 = uVar43 + 2" (identifier "uVar8") (= "=") (binary_expression "uVar43 + 2" (identifier "uVar43") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar16 = (uint)(uVar8 < uVar43) + iVar16;" (assignment_expression "iVar16 = (uint)(uVar8 < uVar43) + iVar16" (identifier "iVar16") (= "=") (binary_expression "(uint)(uVar8 < uVar43) + iVar16" (call_expression "(uint)(uVar8 < uVar43)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar8 < uVar43)" (( "(") (binary_expression "uVar8 < uVar43" (identifier "uVar8") (< "<") (identifier "uVar43")) () ")"))) (+ "+") (identifier "iVar16"))) (; ";")) (expression_statement "iVar11 = iVar26;" (assignment_expression "iVar11 = iVar26" (identifier "iVar11") (= "=") (identifier "iVar26")) (; ";")) (expression_statement "uVar43 = uVar8;" (assignment_expression "uVar43 = uVar8" (identifier "uVar43") (= "=") (identifier "uVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar8 < uVar42)" (( "(") (binary_expression "uVar8 < uVar42" (identifier "uVar8") (< "<") (identifier "uVar42")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);" (assignment_expression "iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(iVar13 + -0x7d48))(piVar31)" (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 "(piVar31)" (( "(") (identifier "piVar31") () ")")))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar10 + -0x88);" (assignment_expression "iVar13 = *(int *)(puVar10 + -0x88)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar10 + -0x88)" (* "*") (cast_expression "(int *)(puVar10 + -0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x88)" (( "(") (binary_expression "puVar10 + -0x88" (identifier "puVar10") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "pEVar20 = pEVar28;" (assignment_expression "pEVar20 = pEVar28" (identifier "pEVar20") (= "=") (identifier "pEVar28")) (; ";")) (goto_statement "goto LAB_00032354;" (goto "goto") (statement_identifier "LAB_00032354") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00032354:\n  iVar16 = *(int *)(puVar10 + -0x2c);" (statement_identifier "LAB_00032354") (: ":") (expression_statement "iVar16 = *(int *)(puVar10 + -0x2c);" (assignment_expression "iVar16 = *(int *)(puVar10 + -0x2c)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar10 + -0x2c)" (* "*") (cast_expression "(int *)(puVar10 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x2c)" (( "(") (binary_expression "puVar10 + -0x2c" (identifier "puVar10") (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";"))) (if_statement "if (iVar16 != *piVar14) {\n    pcVar39 = *(code **)(iVar13 + -0x7b70);\n    uVar25 = 0x32974;\n    (*pcVar39)();\n    pcVar36 = pcVar39 + 0x726c0;\n    pcVar9 = *(char **)(pcVar39 + 0x6a808);\n    *(int **)(puVar10 + -0xa0) = piVar14;\n    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;\n    *(code **)(puVar10 + -0xb0) = pcVar36;\n    *(undefined4 *)(puVar10 + -0x9c) = uVar25;\n    if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }\n    pEVar32 = pEVar20;\n    if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);\n    if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }\n    return iVar11;\n  }" (if "if") (parenthesized_expression "(iVar16 != *piVar14)" (( "(") (binary_expression "iVar16 != *piVar14" (identifier "iVar16") (!= "!=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) () ")")) (compound_statement "{\n    pcVar39 = *(code **)(iVar13 + -0x7b70);\n    uVar25 = 0x32974;\n    (*pcVar39)();\n    pcVar36 = pcVar39 + 0x726c0;\n    pcVar9 = *(char **)(pcVar39 + 0x6a808);\n    *(int **)(puVar10 + -0xa0) = piVar14;\n    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;\n    *(code **)(puVar10 + -0xb0) = pcVar36;\n    *(undefined4 *)(puVar10 + -0x9c) = uVar25;\n    if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }\n    pEVar32 = pEVar20;\n    if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }\n    iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);\n    if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }\n    return iVar11;\n  }" ({ "{") (expression_statement "pcVar39 = *(code **)(iVar13 + -0x7b70);" (assignment_expression "pcVar39 = *(code **)(iVar13 + -0x7b70)" (identifier "pcVar39") (= "=") (pointer_expression "*(code **)(iVar13 + -0x7b70)" (* "*") (cast_expression "(code **)(iVar13 + -0x7b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + -0x7b70)" (( "(") (binary_expression "iVar13 + -0x7b70" (identifier "iVar13") (+ "+") (number_literal "-0x7b70")) () ")"))))) (; ";")) (expression_statement "uVar25 = 0x32974;" (assignment_expression "uVar25 = 0x32974" (identifier "uVar25") (= "=") (number_literal "0x32974")) (; ";")) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" (( "(") (pointer_expression "*pcVar39" (* "*") (identifier "pcVar39")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar36 = pcVar39 + 0x726c0;" (assignment_expression "pcVar36 = pcVar39 + 0x726c0" (identifier "pcVar36") (= "=") (binary_expression "pcVar39 + 0x726c0" (identifier "pcVar39") (+ "+") (number_literal "0x726c0"))) (; ";")) (expression_statement "pcVar9 = *(char **)(pcVar39 + 0x6a808);" (assignment_expression "pcVar9 = *(char **)(pcVar39 + 0x6a808)" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)(pcVar39 + 0x6a808)" (* "*") (cast_expression "(char **)(pcVar39 + 0x6a808)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar39 + 0x6a808)" (( "(") (binary_expression "pcVar39 + 0x6a808" (identifier "pcVar39") (+ "+") (number_literal "0x6a808")) () ")"))))) (; ";")) (expression_statement "*(int **)(puVar10 + -0xa0) = piVar14;" (assignment_expression "*(int **)(puVar10 + -0xa0) = piVar14" (pointer_expression "*(int **)(puVar10 + -0xa0)" (* "*") (cast_expression "(int **)(puVar10 + -0xa0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0xa0)" (( "(") (binary_expression "puVar10 + -0xa0" (identifier "puVar10") (+ "+") (number_literal "-0xa0")) () ")")))) (= "=") (identifier "piVar14")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;" (assignment_expression "*(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32" (pointer_expression "*(Elf32_Ehdr **)(puVar10 + -0xa4)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar10 + -0xa4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0xa4)" (( "(") (binary_expression "puVar10 + -0xa4" (identifier "puVar10") (+ "+") (number_literal "-0xa4")) () ")")))) (= "=") (identifier "pEVar32")) (; ";")) (expression_statement "*(code **)(puVar10 + -0xb0) = pcVar36;" (assignment_expression "*(code **)(puVar10 + -0xb0) = pcVar36" (pointer_expression "*(code **)(puVar10 + -0xb0)" (* "*") (cast_expression "(code **)(puVar10 + -0xb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0xb0)" (( "(") (binary_expression "puVar10 + -0xb0" (identifier "puVar10") (+ "+") (number_literal "-0xb0")) () ")")))) (= "=") (identifier "pcVar36")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x9c) = uVar25;" (assignment_expression "*(undefined4 *)(puVar10 + -0x9c) = uVar25" (pointer_expression "*(undefined4 *)(puVar10 + -0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x9c)" (( "(") (binary_expression "puVar10 + -0x9c" (identifier "puVar10") (+ "+") (number_literal "-0x9c")) () ")")))) (= "=") (identifier "uVar25")) (; ";")) (if_statement "if (*pcVar9 == '\0') {\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }" (if "if") (parenthesized_expression "(*pcVar9 == '\0')" (( "(") (binary_expression "*pcVar9 == '\0'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      pcVar36 = *(code **)(pcVar39 + 0x6ac84);\n      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);\n      *pcVar9 = '\x01';\n      (*pcVar36)(uVar25);\n      pcVar36 = *(code **)(puVar10 + -0xb0);\n    }" ({ "{") (expression_statement "pcVar36 = *(code **)(pcVar39 + 0x6ac84);" (assignment_expression "pcVar36 = *(code **)(pcVar39 + 0x6ac84)" (identifier "pcVar36") (= "=") (pointer_expression "*(code **)(pcVar39 + 0x6ac84)" (* "*") (cast_expression "(code **)(pcVar39 + 0x6ac84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar39 + 0x6ac84)" (( "(") (binary_expression "pcVar39 + 0x6ac84" (identifier "pcVar39") (+ "+") (number_literal "0x6ac84")) () ")"))))) (; ";")) (expression_statement "uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);" (assignment_expression "uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc)" (identifier "uVar25") (= "=") (pointer_expression "*(undefined4 *)(pcVar39 + 0x6a8fc)" (* "*") (cast_expression "(undefined4 *)(pcVar39 + 0x6a8fc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar39 + 0x6a8fc)" (( "(") (binary_expression "pcVar39 + 0x6a8fc" (identifier "pcVar39") (+ "+") (number_literal "0x6a8fc")) () ")"))))) (; ";")) (expression_statement "*pcVar9 = '\x01';" (assignment_expression "*pcVar9 = '\x01'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "(*pcVar36)(uVar25);" (call_expression "(*pcVar36)(uVar25)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(uVar25)" (( "(") (identifier "uVar25") () ")"))) (; ";")) (expression_statement "pcVar36 = *(code **)(puVar10 + -0xb0);" (assignment_expression "pcVar36 = *(code **)(puVar10 + -0xb0)" (identifier "pcVar36") (= "=") (pointer_expression "*(code **)(puVar10 + -0xb0)" (* "*") (cast_expression "(code **)(puVar10 + -0xb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0xb0)" (( "(") (binary_expression "puVar10 + -0xb0" (identifier "puVar10") (+ "+") (number_literal "-0xb0")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pEVar32 = pEVar20;" (assignment_expression "pEVar32 = pEVar20" (identifier "pEVar32") (= "=") (identifier "pEVar20")) (; ";")) (if_statement "if ((int)pEVar20 < 0) {\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }" (if "if") (parenthesized_expression "((int)pEVar20 < 0)" (( "(") (binary_expression "(int)pEVar20 < 0" (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;\n    }" ({ "{") (expression_statement "pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;" (assignment_expression "pEVar32 = (Elf32_Ehdr *)-(int)pEVar20" (identifier "pEVar32") (= "=") (cast_expression "(Elf32_Ehdr *)-(int)pEVar20" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)pEVar20" (- "-") (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20"))))) (; ";")) (} "}"))) (expression_statement "iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);" (assignment_expression "iVar11 = (**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(pcVar36 + -0x7f7c))\n                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5)" (parenthesized_expression "(**(code **)(pcVar36 + -0x7f7c))" (( "(") (pointer_expression "**(code **)(pcVar36 + -0x7f7c)" (* "*") (pointer_expression "*(code **)(pcVar36 + -0x7f7c)" (* "*") (cast_expression "(code **)(pcVar36 + -0x7f7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar36 + -0x7f7c)" (( "(") (binary_expression "pcVar36 + -0x7f7c" (identifier "pcVar36") (+ "+") (number_literal "-0x7f7c")) () ")"))))) () ")")) (argument_list "(iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5)" (( "(") (identifier "iVar16") (, ",") (pointer_expression "*(undefined4 *)(pcVar36 + -0x7dc4)" (* "*") (cast_expression "(undefined4 *)(pcVar36 + -0x7dc4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar36 + -0x7dc4)" (( "(") (binary_expression "pcVar36 + -0x7dc4" (identifier "pcVar36") (+ "+") (number_literal "-0x7dc4")) () ")")))) (, ",") (binary_expression "(int)pEVar32 << 5" (cast_expression "(int)pEVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar32")) (<< "<<") (number_literal "5")) () ")")))) (; ";")) (if_statement "if ((int)pEVar20 < 0) {\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }" (if "if") (parenthesized_expression "((int)pEVar20 < 0)" (( "(") (binary_expression "(int)pEVar20 < 0" (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar11 = -*(int *)(iVar16 + 4);\n      *(int *)(iVar16 + 4) = iVar11;\n    }" ({ "{") (expression_statement "iVar11 = -*(int *)(iVar16 + 4);" (assignment_expression "iVar11 = -*(int *)(iVar16 + 4)" (identifier "iVar11") (= "=") (unary_expression "-*(int *)(iVar16 + 4)" (- "-") (pointer_expression "*(int *)(iVar16 + 4)" (* "*") (cast_expression "(int *)(iVar16 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 4)" (( "(") (binary_expression "iVar16 + 4" (identifier "iVar16") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "*(int *)(iVar16 + 4) = iVar11;" (assignment_expression "*(int *)(iVar16 + 4) = iVar11" (pointer_expression "*(int *)(iVar16 + 4)" (* "*") (cast_expression "(int *)(iVar16 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 4)" (( "(") (binary_expression "iVar16 + 4" (identifier "iVar16") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (} "}"))) (return_statement "return iVar11;" (return "return") (identifier "iVar11") (; ";")) (} "}"))) (return_statement "return iVar11;" (return "return") (identifier "iVar11") (; ";")) (} "}")))
(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: (pointer_declarator 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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (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: (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: (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: (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: (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: (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: (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: (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: (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: (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: (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)))))) (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 (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (number_literal)) 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: (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))))))) 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: (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))))))))))))))) 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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (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 (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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))))))) (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)))) 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: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (identifier))))))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (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: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (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)) 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 (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (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: (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: (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)) 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)) 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 (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (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))) (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: (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: (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 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: (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: (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: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (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: (type_identifier)) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (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: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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 (expression_statement (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))))) (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: (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: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (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))))) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_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: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (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)))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (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))) (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: (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: (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: (binary_expression left: (identifier) 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)) 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: (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: (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: (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: (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: (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 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: (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: (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: (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 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 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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (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)))))))) 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: (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: (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: (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)))))))) 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)) 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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))))))))))))))))))))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (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: (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)))) (break_statement))) (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)))) (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)))) condition: (parenthesized_expression (binary_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: (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 (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)))) (return_statement (identifier)))))

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

{
  bool bVar1;
  longlong lVar2;
  undefined1 *puVar3;
  undefined4 *puVar4;
  Elf32_Ehdr *pEVar5;
  int *piVar6;
  byte *pbVar7;
  uint uVar8;
  char *pcVar9;
  undefined1 *puVar10;
  int iVar11;
  byte *pbVar12;
  int iVar13;
  int *piVar14;
  undefined4 uVar15;
  int iVar16;
  uint uVar17;
  Elf32_Ehdr *pEVar18;
  undefined4 uVar19;
  Elf32_Ehdr *pEVar20;
  undefined4 *puVar21;
  undefined4 uVar22;
  undefined1 *puVar23;
  undefined4 uVar24;
  undefined4 uVar25;
  int iVar26;
  Elf32_Ehdr *in_t1;
  Elf32_Ehdr *pEVar27;
  uint in_t2;
  Elf32_Ehdr *in_t3;
  Elf32_Ehdr *pEVar28;
  Elf32_Ehdr *pEVar29;
  Elf32_Ehdr *pEVar30;
  int *piVar31;
  Elf32_Ehdr *pEVar32;
  uint *puVar33;
  undefined *puVar34;
  undefined *puVar35;
  code *pcVar36;
  undefined1 *puVar37;
  undefined1 *puVar38;
  code *pcVar39;
  code *pcVar40;
  uint uVar41;
  uint uVar42;
  uint uVar43;
  undefined8 uVar44;
  undefined1 auStack_58 [24];
  int *local_30;
  int local_2c;
  
  pEVar20 = (Elf32_Ehdr *)PTR___stack_chk_guard_0009d540;
  puVar37 = auStack_58;
  pEVar32 = (Elf32_Ehdr *)((int)param_3 * 4);
  local_30 = (int *)0x0;
  local_2c = *(int *)PTR___stack_chk_guard_0009d540;
  if (pEVar32 < (Elf32_Ehdr *)0x7f01) {
    iVar11 = -((uint)&pEVar32->e_ident_osabi & 0xfffffff8);
    puVar37 = auStack_58 + iVar11;
    pEVar28 = (Elf32_Ehdr *)(&stack0xffffffc0 + iVar11);
  }
  else {
    pEVar28 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,pEVar32);
  }
  uVar17 = (int)((int)param_3 + (1 - (int)param_5)) * 4;
  if (uVar17 < 0x7f01) {
    iVar11 = -(uVar17 + 7 & 0xfffffff8);
    puVar3 = puVar37 + iVar11 + 0x18;
    puVar37 = puVar37 + iVar11;
  }
  else {
    puVar3 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
  }
  if (param_3 != (Elf32_Ehdr *)0x0) {
    puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
    uVar25 = *param_2;
    if (puVar10 == (undefined1 *)0x0) {
      pEVar28->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);
      pEVar28->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);
      pEVar28->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);
      pEVar28->e_ident_magic_str[2] = (char)uVar25;
      pEVar32 = pEVar28;
    }
    else {
      pEVar30 = pEVar28;
      puVar4 = param_2 + 1;
      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;
        puVar10 = puVar10 + -1;
        uVar25 = *puVar4;
        pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;
        puVar4 = puVar4 + 1;
      } while (puVar10 != (undefined1 *)0x0);
      pEVar32 = (Elf32_Ehdr *)
                ((undefined1 *)((int)&pEVar32[-1].e_shentsize + 1) + (int)pEVar28->e_ident_magic_str
                );
      pEVar32->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);
      pEVar32->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);
      pEVar32->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);
      pEVar32->e_ident_magic_str[2] = (char)uVar25;
    }
  }
  *(undefined1 **)(puVar37 + 0x14) = puVar3;
  *(Elf32_Ehdr **)(puVar37 + 0x10) = param_6;
  pEVar18 = param_3;
  pEVar27 = param_5;
  FUN_00030f30(pEVar28);
  pEVar30 = param_5;
  if (param_5 != (Elf32_Ehdr *)0x0) {
    puVar3 = (undefined1 *)((int)&param_5[-1].e_shstrndx + 1);
    pEVar18 = *(Elf32_Ehdr **)pEVar28;
    pEVar5 = param_1;
    pEVar29 = pEVar28;
    if (puVar3 != (undefined1 *)0x0) {
      do {
        *(Elf32_Ehdr **)pEVar5 = pEVar18;
        puVar3 = puVar3 + -1;
        pEVar18 = *(Elf32_Ehdr **)&pEVar29->e_ident_class;
        pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;
        pEVar29 = (Elf32_Ehdr *)&pEVar29->e_ident_class;
      } while (puVar3 != (undefined1 *)0x0);
      pEVar30 = (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 = pEVar18;
  }
  piVar14 = local_30;
  if (local_30 != (int *)0x0) {
    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
  }
  if (local_2c == *(int *)pEVar20) {
    return *(int *)pEVar20;
  }
  pcVar39 = __gmpz_powm_ui;
  puVar34 = PTR___stack_chk_fail_0009d4d0;
  (*(code *)PTR___stack_chk_fail_0009d4d0)();
  puVar35 = puVar34 + 0x73c70;
  puVar4 = *(undefined4 **)(puVar34 + 0x6c170);
  puVar10 = puVar37 + -0xa8;
  puVar3 = puVar37 + -0xa8;
  puVar38 = puVar37 + -0xa8;
  *(undefined1 **)(puVar37 + -8) = auStack_58;
  *(undefined4 **)(puVar37 + -0x20) = param_2;
  *(code **)(puVar37 + -4) = pcVar39;
  *(undefined4 **)(puVar37 + -0x58) = puVar4;
  *(Elf32_Ehdr **)(puVar37 + -0xc) = param_6;
  *(Elf32_Ehdr **)(puVar37 + -0x10) = pEVar32;
  *(Elf32_Ehdr **)(puVar37 + -0x14) = param_3;
  *(Elf32_Ehdr **)(puVar37 + -0x18) = pEVar20;
  *(Elf32_Ehdr **)(puVar37 + -0x1c) = pEVar30;
  *(Elf32_Ehdr **)(puVar37 + -0x24) = pEVar28;
  *(Elf32_Ehdr **)(puVar37 + -0x28) = param_1;
  *(undefined **)(puVar37 + -0x90) = puVar35;
  *(int **)(puVar37 + -0x54) = piVar14;
  *(Elf32_Ehdr **)(puVar37 + -0x5c) = pEVar18;
  *(Elf32_Ehdr **)(puVar37 + -0x68) = pEVar27;
  *(undefined4 *)(puVar37 + -0x2c) = *puVar4;
  pEVar29 = param_4;
  if (param_4 < (Elf32_Ehdr *)0x14) {
    pEVar5 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;
    *(undefined4 *)(puVar37 + -0x4c) = *(undefined4 *)&pEVar27->e_ident_abiversion;
    pEVar32 = pEVar5;
    if ((int)pEVar5 < 0) {
      pEVar32 = (Elf32_Ehdr *)-(int)pEVar5;
    }
    *(Elf32_Ehdr **)(puVar37 + -0x78) = pEVar32;
    if (pEVar5 == (Elf32_Ehdr *)0x0) {
      pEVar20 = param_4;
      uVar44 = (**(code **)(puVar34 + 0x6c210))();
LAB_00031d4c:
      uVar17 = (uint)uVar44;
      pEVar30 = (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)((ulonglong)uVar44 >> 0x20) + -1);
      puVar3 = puVar10;
    }
    else {
      pEVar28 = (Elf32_Ehdr *)((int)pEVar32 * 4);
      if (param_4 == (Elf32_Ehdr *)0x0) {
        uVar17 = 1;
        if (pEVar32 == (Elf32_Ehdr *)0x1) {
          uVar17 = (uint)(**(int **)(puVar37 + -0x4c) != 1);
        }
        piVar14 = *(int **)(puVar37 + -0x54);
        piVar14[1] = uVar17;
        *(undefined4 *)piVar14[2] = 1;
        puVar3 = puVar37 + -0xa8;
        goto LAB_00031764;
      }
      *(undefined4 *)(puVar37 + -0x40) = 0;
      *(word **)(puVar37 + -0x50) = &pEVar28[-1].e_shnum;
      pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + (int)&pEVar28[-1].e_shnum);
      if (pEVar20 < &Elf32_Ehdr_00010000) {
        iVar11 = 0x20;
        if ((Elf32_Ehdr *)0xff < pEVar20) {
          iVar11 = 0x18;
        }
        iVar13 = 9;
        if ((Elf32_Ehdr *)0xff >= pEVar20) {
          iVar13 = 1;
        }
      }
      else {
        iVar11 = 0x10;
        if ((Elf32_Ehdr *)0xffffff < pEVar20) {
          iVar11 = 8;
        }
        iVar13 = 0x19;
        if ((Elf32_Ehdr *)0xffffff >= pEVar20) {
          iVar13 = 0x11;
        }
      }
      param_1 = *(Elf32_Ehdr **)(puVar34 + 0x6bdbc);
      iVar11 = iVar11 - (uint)(byte)param_1->e_ident_magic_str[((uint)pEVar20 >> iVar13) - 1];
      *(int *)(puVar37 + -0x6c) = iVar11;
      puVar10 = puVar37 + -0xa8;
      if (iVar11 != 0) {
        if (*(int *)(puVar37 + -0x50) + 4U < 0x7f01) {
          iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);
          puVar38 = puVar37 + iVar11 + -0xa8;
          pEVar28 = (Elf32_Ehdr *)(puVar37 + iVar11 + -0x90);
        }
        else {
          pEVar28 = (Elf32_Ehdr *)(**(code **)(puVar34 + 0x6bf20))(puVar37 + -0x40);
          puVar35 = *(undefined **)(puVar37 + -0x90);
        }
        (**(code **)(puVar35 + -0x7ad4))
                  (pEVar28,*(undefined4 *)(puVar37 + -0x4c),pEVar32,*(undefined4 *)(puVar37 + -0x6c)
                  );
        puVar35 = *(undefined **)(puVar37 + -0x90);
        *(Elf32_Ehdr **)(puVar37 + -0x4c) = pEVar28;
        pEVar20 = *(Elf32_Ehdr **)(pEVar28->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1);
        puVar10 = puVar38;
      }
      if (pEVar32 == (Elf32_Ehdr *)0x1) {
        pEVar27 = (Elf32_Ehdr *)0x0;
      }
      else {
        pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x4c) + *(int *)(puVar37 + -0x50) + -4);
      }
      pEVar18 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x10);
      if (pEVar18 == (Elf32_Ehdr *)0x0) {
        trap(7);
      }
      uVar42 = ~(uint)pEVar20 / (uint)pEVar18;
      in_t2 = (uint)pEVar20 & 0xffff;
      in_t3 = (Elf32_Ehdr *)(in_t2 * uVar42);
      pEVar30 = (Elf32_Ehdr *)(~(uint)pEVar20 % (uint)pEVar18 << 0x10 | 0xffff);
      uVar17 = uVar42;
      in_t1 = pEVar27;
      puVar3 = puVar10;
      if (pEVar30 < in_t3) {
        pEVar30 = (Elf32_Ehdr *)
                  (pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));
        uVar17 = uVar42 - 1;
        if ((pEVar20 <= pEVar30) && (uVar44 = CONCAT44(pEVar30,uVar42 - 2), pEVar30 < in_t3))
        goto LAB_00031d4c;
      }
    }
    if (pEVar18 == (Elf32_Ehdr *)0x0) {
      trap(7);
    }
    uVar43 = (uint)((int)pEVar30 - (int)in_t3) / (uint)pEVar18;
    pEVar30 = (Elf32_Ehdr *)((uint)((int)pEVar30 - (int)in_t3) % (uint)pEVar18 << 0x10 | 0xffff);
    uVar42 = uVar43;
    if ((pEVar30 < (Elf32_Ehdr *)(in_t2 * uVar43)) &&
       (((Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)) <
         pEVar20 ||
        (uVar42 = uVar43 - 2,
        (Elf32_Ehdr *)(in_t2 * uVar43) <=
        (Elf32_Ehdr *)(pEVar20->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2)))))) {
      uVar42 = uVar43 - 1;
    }
    uVar42 = uVar17 << 0x10 | uVar42;
    pEVar30 = (Elf32_Ehdr *)(in_t1->e_ident_magic_str + uVar42 * (int)pEVar20 + -1);
    lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);
    if (pEVar30 < in_t1) {
      uVar17 = pEVar30 < pEVar20 ^ 1;
      pEVar18 = pEVar20;
      if (uVar17 == 0) {
        pEVar18 = (Elf32_Ehdr *)0x0;
      }
      uVar42 = (uVar42 - 1) - uVar17;
      pEVar30 = (Elf32_Ehdr *)((int)pEVar30 + (-(int)pEVar18 - (int)pEVar20));
      lVar2 = (ulonglong)uVar42 * ZEXT48(pEVar27);
    }
    pEVar27 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);
    pEVar18 = (Elf32_Ehdr *)lVar2;
    pEVar30 = (Elf32_Ehdr *)(pEVar27->e_ident_magic_str + (int)(pEVar30->e_ident_magic_str + -2));
    uVar17 = uVar42;
    if (((pEVar30 < pEVar27) && (uVar17 = uVar42 - 1, pEVar20 <= pEVar30)) &&
       ((pEVar20 < pEVar30 || (in_t1 <= pEVar18)))) {
      uVar17 = uVar42 - 2;
    }
    *(uint *)(puVar37 + -0x44) = uVar17;
    pEVar27 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 4);
    pEVar30 = pEVar27;
    if ((int)pEVar27 < 0) {
      pEVar30 = (Elf32_Ehdr *)-(int)pEVar27;
    }
    pEVar20 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x5c) + 8);
    if ((int)pEVar30 <= (int)pEVar32) {
      if (pEVar27 != (Elf32_Ehdr *)0x0) {
        *(Elf32_Ehdr **)(puVar37 + -100) = pEVar20;
        *(uint *)(puVar37 + -0x70) = *(int *)(puVar37 + -0x50) + 4U;
        pEVar28 = (Elf32_Ehdr *)(uint)(*(int *)(puVar37 + -0x50) + 4U < 0x7f01);
        goto LAB_000317f8;
      }
LAB_000316f4:
      piVar14 = *(int **)(puVar37 + -0x40);
      *(undefined4 *)(*(int *)(puVar37 + -0x54) + 4) = 0;
      if (piVar14 == (int *)0x0) goto LAB_00031764;
      pcVar39 = *(code **)(puVar35 + -0x7a28);
LAB_00031708:
      (*pcVar39)();
      puVar35 = *(undefined **)(puVar37 + -0x90);
      goto LAB_00031764;
    }
    uVar17 = *(int *)(puVar37 + -0x50) + 4;
    pEVar28 = (Elf32_Ehdr *)(uint)(uVar17 < 0x7f01);
    *(uint *)(puVar37 + -0x70) = uVar17;
    if (pEVar28 == (Elf32_Ehdr *)0x0) {
      pcVar39 = *(code **)(puVar35 + -0x7d50);
      *(Elf32_Ehdr **)(puVar37 + -0x60) = pEVar30;
      puVar10 = (undefined1 *)(*pcVar39)(puVar37 + -0x40,uVar17);
      pEVar30 = *(Elf32_Ehdr **)(puVar37 + -0x60);
      *(undefined1 **)(puVar37 + -100) = puVar10;
    }
    else {
      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xbU & 0xfffffff8);
      puVar10 = puVar3 + iVar11 + 0x18;
      *(undefined1 **)(puVar37 + -100) = puVar10;
      puVar3 = puVar3 + iVar11;
    }
    uVar25 = *(undefined4 *)(puVar37 + -0x4c);
    *(undefined1 **)(puVar3 + 0x14) = puVar37 + -0x44;
    *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar32;
    pEVar18 = pEVar20;
    MASKED(puVar10,pEVar20,pEVar30,uVar25);
    puVar35 = *(undefined **)(puVar37 + -0x90);
    pEVar30 = pEVar32;
    if (*(int *)(puVar10 + *(int *)(puVar37 + -0x50)) == 0) {
      puVar10 = puVar10 + *(int *)(puVar37 + -0x70);
      do {
        pEVar30 = (Elf32_Ehdr *)((int)&pEVar30[-1].e_shstrndx + 1);
        if (pEVar30 == (Elf32_Ehdr *)0x0) goto LAB_000316f4;
        piVar14 = (int *)(puVar10 + -8);
        pEVar18 = (Elf32_Ehdr *)((int)pEVar32 << 3);
        puVar10 = puVar10 + -4;
      } while (*piVar14 == 0);
    }
LAB_000317f8:
    if ((int)pEVar32 * 8 + 4U < 0x7f01) {
      iVar11 = -((int)pEVar32 * 8 + 8);
      pEVar20 = (Elf32_Ehdr *)(puVar3 + iVar11 + 0x18);
      puVar3 = puVar3 + iVar11;
    }
    else {
      pEVar20 = (Elf32_Ehdr *)(**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);
      puVar35 = *(undefined **)(puVar37 + -0x90);
    }
    if (pEVar28 == (Elf32_Ehdr *)0x0) {
      param_6 = (Elf32_Ehdr *)
                (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40,*(undefined4 *)(puVar37 + -0x70));
      puVar35 = *(undefined **)(puVar37 + -0x90);
    }
    else {
      param_6 = (Elf32_Ehdr *)(puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8) + 0x18);
      puVar3 = puVar3 + -(*(int *)(puVar37 + -0x70) + 7U & 0xfffffff8);
    }
    if (*(int *)(puVar37 + -0x50) + 8U < 0x7f01) {
      iVar11 = -(*(int *)(puVar37 + -0x50) + 0xfU & 0xfffffff8);
      *(undefined1 **)(puVar37 + -0x74) = puVar3 + iVar11 + 0x18;
      puVar3 = puVar3 + iVar11;
    }
    else {
      uVar25 = (**(code **)(puVar35 + -0x7d50))(puVar37 + -0x40);
      puVar35 = *(undefined **)(puVar37 + -0x90);
      *(undefined4 *)(puVar37 + -0x74) = uVar25;
    }
    puVar4 = *(undefined4 **)(puVar37 + -100);
    puVar23 = (undefined1 *)((int)&pEVar30[-1].e_shstrndx + 1);
    pEVar18 = (Elf32_Ehdr *)*puVar4;
    pEVar28 = param_6;
    puVar10 = puVar23;
    if (puVar23 != (undefined1 *)0x0) {
      do {
        puVar4 = puVar4 + 1;
        *(Elf32_Ehdr **)pEVar28 = pEVar18;
        puVar10 = puVar10 + -1;
        pEVar18 = (Elf32_Ehdr *)*puVar4;
        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;
      } while (puVar10 != (undefined1 *)0x0);
      pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + (int)&pEVar30[-1].e_shstrndx * 4 + 3);
    }
    *(Elf32_Ehdr **)pEVar28 = pEVar18;
    param_1 = (Elf32_Ehdr *)
              (0x20 - (uint)(byte)param_1->e_ident_magic_str[((uint)param_4 >> 1) - 1]);
    iVar11 = 0x1f - (int)param_1;
    param_3 = pEVar30;
    if (iVar11 == 0) {
      if (pEVar32 == pEVar30) {
        pcVar9 = param_6->e_ident_magic_str + (int)pEVar32 * 4 + -1;
        iVar11 = *(int *)(puVar37 + -0x4c) + (int)pEVar32 * 4;
        do {
          pEVar18 = *(Elf32_Ehdr **)(iVar11 + -4);
          puVar23 = puVar23 + -1;
          if (*(Elf32_Ehdr **)(pcVar9 + -4) != pEVar18) {
            pcVar39 = *(code **)(puVar35 + -0x7b2c);
            if (pEVar18 < *(Elf32_Ehdr **)(pcVar9 + -4)) goto LAB_00031d88;
            goto LAB_000318d0;
          }
          pcVar9 = pcVar9 + -4;
          iVar11 = iVar11 + -4;
        } while (puVar23 != (undefined1 *)0xffffffff);
        pcVar39 = *(code **)(puVar35 + -0x7b2c);
LAB_00031d88:
        pEVar18 = param_6;
        (*pcVar39)(param_6,param_6,*(undefined4 *)(puVar37 + -0x4c),pEVar30);
        puVar35 = *(undefined **)(puVar37 + -0x90);
      }
    }
    else {
      pEVar28 = (Elf32_Ehdr *)((int)&pEVar32[-1].e_shstrndx + 1);
      *(Elf32_Ehdr **)(puVar37 + 8) = param_4;
      param_1 = (Elf32_Ehdr *)(((int)param_4 << ((uint)param_1 & 0x1f)) << 1);
      *(char **)(puVar37 + -0x84) = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1;
      *(undefined1 **)(puVar37 + -0x7c) = puVar37 + -0x44;
      *(int *)(puVar37 + -0x80) = *(int *)(puVar35 + -0x7fcc) + 0xf30;
      *(undefined4 *)(puVar37 + -0x60) = 0x3fffffff;
      do {
        pEVar18 = param_6;
        (**(code **)(puVar35 + -0x7cac))(pEVar20,param_6,param_3);
        param_3 = (Elf32_Ehdr *)
                  ((int)param_3 * 2 -
                  (uint)(*(int *)(pEVar20->e_ident_magic_str +
                                 ((int)param_3 * 2 + *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));
        puVar35 = *(undefined **)(puVar37 + -0x90);
        if ((int)param_3 < (int)pEVar32) {
          puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
          if (param_3 != (Elf32_Ehdr *)0x0) {
            uVar22._0_1_ = pEVar20->e_ident_magic_num;
            uVar22._1_1_ = pEVar20->e_ident_magic_str[0];
            uVar22._2_1_ = pEVar20->e_ident_magic_str[1];
            uVar22._3_1_ = pEVar20->e_ident_magic_str[2];
            pEVar27 = param_6;
            if (puVar10 != (undefined1 *)0x0) {
              pbVar12 = &pEVar20->e_ident_class;
              do {
                pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);
                pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);
                pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);
                pEVar27->e_ident_magic_str[2] = (char)uVar22;
                pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);
                puVar10 = puVar10 + -1;
                uVar22 = *(undefined4 *)pbVar12;
                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
                pbVar12 = (byte *)pEVar18;
              } while (puVar10 != (undefined1 *)0x0);
              pEVar27 = (Elf32_Ehdr *)
                        (param_6->e_ident_magic_str +
                        (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5);
            }
            pEVar27->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);
            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);
            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);
            pEVar27->e_ident_magic_str[2] = (char)uVar22;
          }
          pcVar39 = *(code **)(puVar35 + -0x7d8c);
        }
        else {
          uVar25 = *(undefined4 *)(puVar37 + -0x4c);
          pcVar39 = *(code **)(puVar37 + -0x80);
          *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);
          *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);
          (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);
          puVar35 = *(undefined **)(puVar37 + -0x90);
          uVar25._0_1_ = pEVar20->e_ident_magic_num;
          uVar25._1_1_ = pEVar20->e_ident_magic_str[0];
          uVar25._2_1_ = pEVar20->e_ident_magic_str[1];
          uVar25._3_1_ = pEVar20->e_ident_magic_str[2];
          if (pEVar28 == (Elf32_Ehdr *)0x0) {
            param_6->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);
            param_6->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);
            param_6->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);
            param_6->e_ident_magic_str[2] = (char)uVar25;
          }
          else {
            pEVar18 = pEVar28;
            pEVar27 = param_6;
            pbVar12 = &pEVar20->e_ident_class;
            do {
              pEVar27->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);
              pEVar27->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);
              pEVar27->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);
              pEVar27->e_ident_magic_str[2] = (char)uVar25;
              param_3 = (Elf32_Ehdr *)(pbVar12 + 4);
              pEVar18 = (Elf32_Ehdr *)((int)&pEVar18[-1].e_shstrndx + 1);
              uVar25 = *(undefined4 *)pbVar12;
              pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
              pbVar12 = (byte *)param_3;
            } while (pEVar18 != (Elf32_Ehdr *)0x0);
            **(undefined4 **)(puVar37 + -0x84) = uVar25;
          }
          pcVar39 = *(code **)(puVar35 + -0x7d8c);
          pEVar18 = param_3;
          param_3 = pEVar32;
        }
        if ((int)param_1 < 0) {
          uVar25 = *(undefined4 *)(puVar37 + -100);
          *(Elf32_Ehdr **)(puVar3 + 0x10) = pEVar30;
          pEVar18 = param_6;
          (*pcVar39)(pEVar20,param_6,param_3,uVar25);
          param_3 = (Elf32_Ehdr *)
                    (pEVar30->e_ident_magic_str + (int)(param_3->e_ident_magic_str + -2) +
                    -(uint)(*(int *)(pEVar20->e_ident_magic_str +
                                    (int)(pEVar30->e_ident_magic_str +
                                          (int)(param_3->e_ident_magic_str + -2) +
                                         *(int *)(puVar37 + -0x60)) * 4 + -1) == 0));
          puVar35 = *(undefined **)(puVar37 + -0x90);
          if ((int)param_3 < (int)pEVar32) {
            puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
            if (param_3 != (Elf32_Ehdr *)0x0) {
              uVar24._0_1_ = pEVar20->e_ident_magic_num;
              uVar24._1_1_ = pEVar20->e_ident_magic_str[0];
              uVar24._2_1_ = pEVar20->e_ident_magic_str[1];
              uVar24._3_1_ = pEVar20->e_ident_magic_str[2];
              if (puVar10 == (undefined1 *)0x0) {
                param_6->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);
                param_6->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);
                param_6->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);
                param_6->e_ident_magic_str[2] = (char)uVar24;
              }
              else {
                pEVar27 = param_6;
                pbVar12 = &pEVar20->e_ident_class;
                do {
                  pEVar27->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);
                  pEVar27->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);
                  pEVar27->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);
                  pEVar27->e_ident_magic_str[2] = (char)uVar24;
                  pEVar18 = (Elf32_Ehdr *)(pbVar12 + 4);
                  puVar10 = puVar10 + -1;
                  uVar24 = *(undefined4 *)pbVar12;
                  pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
                  pbVar12 = (byte *)pEVar18;
                } while (puVar10 != (undefined1 *)0x0);
                *(undefined4 *)
                 (param_6->e_ident_magic_str +
                 (int)param_3->e_ident_magic_str * 4 + *(int *)(puVar37 + -0x60) * 4 + -5) = uVar24;
              }
            }
          }
          else {
            uVar25 = *(undefined4 *)(puVar37 + -0x4c);
            pcVar39 = *(code **)(puVar37 + -0x80);
            *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);
            *(undefined4 *)(puVar3 + 0x10) = *(undefined4 *)(puVar37 + -0x7c);
            (*pcVar39)(pEVar20,param_3,uVar25,pEVar32);
            puVar35 = *(undefined **)(puVar37 + -0x90);
            pEVar18 = *(Elf32_Ehdr **)pEVar20;
            pEVar29 = pEVar28;
            pEVar5 = param_6;
            pEVar27 = pEVar20;
            if (pEVar28 == (Elf32_Ehdr *)0x0) {
              *(Elf32_Ehdr **)param_6 = pEVar18;
              param_3 = pEVar32;
            }
            else {
              do {
                *(Elf32_Ehdr **)pEVar5 = pEVar18;
                pEVar29 = (Elf32_Ehdr *)((int)&pEVar29[-1].e_shstrndx + 1);
                pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;
                pEVar5 = (Elf32_Ehdr *)&pEVar5->e_ident_class;
                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
              } while (pEVar29 != (Elf32_Ehdr *)0x0);
              **(undefined4 **)(puVar37 + -0x84) = pEVar18;
              param_3 = pEVar32;
            }
          }
        }
        iVar11 = iVar11 + -1;
        param_1 = (Elf32_Ehdr *)((int)param_1 << 1);
      } while (iVar11 != 0);
      param_4 = *(Elf32_Ehdr **)(puVar37 + 8);
      pEVar30 = pEVar28;
    }
LAB_000318d0:
    pEVar28 = (Elf32_Ehdr *)0x0;
    pEVar27 = *(Elf32_Ehdr **)(puVar37 + -0x6c);
    if (pEVar27 == (Elf32_Ehdr *)0x0) {
LAB_000318dc:
      if ((0 < (int)param_3) &&
         (*(int *)(param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3) == 0)) {
        pcVar9 = 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) {
            pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);
            piVar14 = *(int **)(puVar37 + -0x54);
            if ((pEVar29 == (Elf32_Ehdr *)0x0) ||
               (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4)))
            goto LAB_00031934;
            goto LAB_00031a08;
          }
          piVar14 = (int *)(pcVar9 + -8);
          pcVar9 = pcVar9 + -4;
        } while (*piVar14 == 0);
      }
      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);
      piVar14 = *(int **)(puVar37 + -0x54);
      if ((pEVar29 == (Elf32_Ehdr *)0x0) ||
         (piVar14 = *(int **)(puVar37 + -0x54), -1 < *(int *)(*(int *)(puVar37 + -0x5c) + 4))) {
LAB_00031934:
        pcVar39 = *(code **)(puVar35 + -0x7a80);
        if (*piVar14 < (int)param_3) goto LAB_00031fa0;
LAB_00031944:
        pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);
        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;
        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031994;
      }
      else {
        if (param_3 == (Elf32_Ehdr *)0x0) goto LAB_00031a04;
        param_1 = *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x68) + 8);
        pEVar18 = param_1;
        iVar11 = (**(code **)(puVar35 + -0x7b2c))(param_6,param_1,param_6,param_3);
        puVar35 = *(undefined **)(puVar37 + -0x90);
        pEVar28 = param_3;
        if (iVar11 == 0) {
LAB_00031fd0:
          param_3 = pEVar28;
          if ((param_6 == param_1) || ((int)pEVar32 <= (int)pEVar28)) goto LAB_00031c50;
          pEVar18 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1);
          pbVar7 = (byte *)(param_1->e_ident_magic_str + (int)pEVar28 * 4 + -1);
          pbVar12 = (byte *)(param_6->e_ident_magic_str + (int)pEVar28 * 4 + -1);
          do {
            uVar25 = *(undefined4 *)pbVar7;
            pbVar7 = pbVar7 + 4;
            *(undefined4 *)pbVar12 = uVar25;
            pbVar12 = pbVar12 + 4;
          } while (pEVar18 != (Elf32_Ehdr *)pbVar7);
          iVar11 = *(int *)(puVar37 + -0x50);
        }
        else {
          pEVar28 = (Elf32_Ehdr *)param_3->e_ident_magic_str;
          if ((int)param_3 < (int)pEVar32) {
            pEVar18 = (Elf32_Ehdr *)((int)param_3 * 4);
            pbVar12 = (byte *)(param_1->e_ident_magic_str + (int)param_3 * 4 + -1);
            iVar11 = *(int *)pbVar12;
            *(int *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1) = iVar11 + -1;
            if (iVar11 == 0) {
              pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;
              if ((int)pEVar32 <= (int)pEVar28) goto LAB_00031c50;
              pcVar9 = (char *)((int)pEVar18 + -1);
              pEVar18 = (Elf32_Ehdr *)
                        ((char *)((int)pEVar18 + -1) + (int)param_6->e_ident_magic_str);
              pEVar28 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + 1);
              iVar11 = *(int *)(pcVar9 + (int)param_1->e_ident_magic_str);
              *(int *)pEVar18 = iVar11 + -1;
              pbVar7 = (byte *)(param_6->e_ident_magic_str + (int)param_3 * 4 + -1);
              while (iVar11 == 0) {
                param_3 = pEVar28;
                if (pEVar32 == pEVar28) goto LAB_00031c50;
                iVar11 = *(int *)(pbVar12 + 8);
                pEVar28 = (Elf32_Ehdr *)pEVar28->e_ident_magic_str;
                pbVar12 = pbVar12 + 4;
                pEVar18 = (Elf32_Ehdr *)(iVar11 + -1);
                *(Elf32_Ehdr **)(pbVar7 + 8) = pEVar18;
                pbVar7 = pbVar7 + 4;
              }
            }
            goto LAB_00031fd0;
          }
LAB_00031c50:
          iVar11 = *(int *)(puVar37 + -0x50);
        }
        pEVar28 = (Elf32_Ehdr *)(param_6->e_ident_magic_str + iVar11 + -1);
        iVar11._0_1_ = pEVar28->e_ident_magic_num;
        iVar11._1_1_ = pEVar28->e_ident_magic_str[0];
        iVar11._2_1_ = pEVar28->e_ident_magic_str[1];
        iVar11._3_1_ = pEVar28->e_ident_magic_str[2];
        if (iVar11 == 0) {
          iVar11 = *(int *)(puVar37 + -0x78);
          pcVar9 = param_6->e_ident_magic_str + *(int *)(puVar37 + -0x70) + -1;
          do {
            iVar11 = iVar11 + -1;
            if (iVar11 == 0) {
              piVar14 = *(int **)(puVar37 + -0x54);
              goto LAB_00031a08;
            }
            piVar14 = (int *)(pcVar9 + -8);
            pcVar9 = pcVar9 + -4;
          } while (*piVar14 == 0);
          *(int *)(puVar37 + -0x78) = iVar11;
        }
        param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);
        if (**(int **)(puVar37 + -0x54) < (int)param_3) {
          param_3 = *(Elf32_Ehdr **)(puVar37 + -0x78);
          pcVar39 = *(code **)(puVar35 + -0x7a80);
LAB_00031fa0:
          pEVar18 = param_3;
          (*pcVar39)(*(undefined4 *)(puVar37 + -0x54));
          puVar35 = *(undefined **)(puVar37 + -0x90);
          goto LAB_00031944;
        }
        *(Elf32_Ehdr **)(*(int *)(puVar37 + -0x54) + 4) = param_3;
      }
      pEVar29 = (Elf32_Ehdr *)((uint)param_4 & 1);
      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
      pEVar18 = *(Elf32_Ehdr **)param_6;
      puVar21 = *(undefined4 **)(*(int *)(puVar37 + -0x54) + 8);
      puVar4 = puVar21;
      pEVar27 = param_6;
      if (puVar10 != (undefined1 *)0x0) {
        do {
          *puVar4 = pEVar18;
          puVar10 = puVar10 + -1;
          pEVar18 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;
          puVar4 = puVar4 + 1;
          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
        } while (puVar10 != (undefined1 *)0x0);
        puVar21 = puVar21 + (int)((int)&param_3[-1].e_shstrndx + 1);
      }
      *puVar21 = pEVar18;
    }
    else {
      iVar13 = (**(code **)(puVar35 + -0x7ad4))(pEVar20,param_6,param_3,pEVar27);
      iVar16 = *(int *)(puVar37 + -0x90);
      iVar11 = (int)param_3 * 4;
      param_3 = (Elf32_Ehdr *)(param_3->e_ident_magic_str + ((iVar13 != 0) - 1));
      *(int *)(pEVar20->e_ident_magic_str + iVar11 + -1) = iVar13;
      param_1 = pEVar27;
      if ((int)pEVar32 <= (int)param_3) {
        uVar25 = *(undefined4 *)(puVar37 + -0x4c);
        *(undefined4 *)(puVar3 + 0x14) = *(undefined4 *)(puVar37 + -0x74);
        *(undefined1 **)(puVar3 + 0x10) = puVar37 + -0x44;
        FUN_00030f30(pEVar20,param_3,uVar25,pEVar32);
        puVar10 = (undefined1 *)((int)&pEVar32[-1].e_shstrndx + 1);
        iVar16 = *(int *)(puVar37 + -0x90);
        uVar15._0_1_ = pEVar20->e_ident_magic_num;
        uVar15._1_1_ = pEVar20->e_ident_magic_str[0];
        uVar15._2_1_ = pEVar20->e_ident_magic_str[1];
        uVar15._3_1_ = pEVar20->e_ident_magic_str[2];
        pEVar27 = param_6;
        pEVar18 = pEVar20;
        if (puVar10 == (undefined1 *)0x0) {
          param_6->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);
          param_6->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);
          param_6->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);
          param_6->e_ident_magic_str[2] = (char)uVar15;
          param_3 = pEVar32;
        }
        else {
          do {
            pEVar27->e_ident_magic_num = (char)((uint)uVar15 >> 0x18);
            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar15 >> 0x10);
            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar15 >> 8);
            pEVar27->e_ident_magic_str[2] = (char)uVar15;
            puVar10 = puVar10 + -1;
            uVar15._0_1_ = pEVar18->e_ident_class;
            uVar15._1_1_ = pEVar18->e_ident_data;
            uVar15._2_1_ = pEVar18->e_ident_version;
            uVar15._3_1_ = pEVar18->e_ident_osabi;
            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;
          } while (puVar10 != (undefined1 *)0x0);
          *(undefined4 *)(param_6->e_ident_magic_str + *(int *)(puVar37 + -0x50) + -1) = uVar15;
          param_3 = pEVar32;
        }
LAB_00031de0:
        pEVar18 = param_6;
        (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,param_3,*(undefined4 *)(puVar37 + -0x6c));
        puVar35 = *(undefined **)(puVar37 + -0x90);
        goto LAB_000318dc;
      }
      puVar10 = (undefined1 *)((int)&param_3[-1].e_shstrndx + 1);
      if (param_3 != (Elf32_Ehdr *)0x0) {
        uVar19._0_1_ = pEVar20->e_ident_magic_num;
        uVar19._1_1_ = pEVar20->e_ident_magic_str[0];
        uVar19._2_1_ = pEVar20->e_ident_magic_str[1];
        uVar19._3_1_ = pEVar20->e_ident_magic_str[2];
        pEVar27 = param_6;
        pEVar18 = pEVar20;
        if (puVar10 != (undefined1 *)0x0) {
          do {
            pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);
            pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);
            pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);
            pEVar27->e_ident_magic_str[2] = (char)uVar19;
            puVar10 = puVar10 + -1;
            uVar19._0_1_ = pEVar18->e_ident_class;
            uVar19._1_1_ = pEVar18->e_ident_data;
            uVar19._2_1_ = pEVar18->e_ident_version;
            uVar19._3_1_ = pEVar18->e_ident_osabi;
            pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
            pEVar18 = (Elf32_Ehdr *)&pEVar18->e_ident_class;
          } while (puVar10 != (undefined1 *)0x0);
          pEVar27 = (Elf32_Ehdr *)
                    (param_6->e_ident_magic_str + (int)&param_3[-1].e_shstrndx * 4 + 3);
        }
        pEVar27->e_ident_magic_num = (char)((uint)uVar19 >> 0x18);
        pEVar27->e_ident_magic_str[0] = (char)((uint)uVar19 >> 0x10);
        pEVar27->e_ident_magic_str[1] = (char)((uint)uVar19 >> 8);
        pEVar27->e_ident_magic_str[2] = (char)uVar19;
        goto LAB_00031de0;
      }
      pEVar18 = param_6;
      (**(code **)(iVar16 + -0x7ae0))(param_6,param_6,0,pEVar27);
      puVar35 = *(undefined **)(puVar37 + -0x90);
      pEVar29 = param_4;
LAB_00031a04:
      piVar14 = *(int **)(puVar37 + -0x54);
LAB_00031a08:
      if (*piVar14 < 0) {
        param_1 = *(Elf32_Ehdr **)(puVar37 + -0x54);
        pEVar18 = (Elf32_Ehdr *)0x0;
        (**(code **)(puVar35 + -0x7a80))(param_1);
        puVar35 = *(undefined **)(puVar37 + -0x90);
        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 *)(puVar37 + -0x54) + 4) = 0;
      }
    }
LAB_00031994:
    piVar14 = *(int **)(puVar37 + -0x40);
    piVar6 = *(int **)(puVar37 + -0x58);
    if (piVar14 != (int *)0x0) {
      pcVar39 = *(code **)(puVar35 + -0x7a28);
      goto LAB_00031708;
    }
  }
  else {
    pcVar39 = *(code **)(puVar34 + 0x6c110);
    *(Elf32_Ehdr **)(puVar37 + -0x3c) = param_4;
    *(undefined4 *)(puVar37 + -0x34) = 1;
    *(undefined1 **)(puVar37 + -0x30) = puVar37 + -0x3c;
    (*pcVar39)();
    puVar35 = *(undefined **)(puVar37 + -0x90);
LAB_00031764:
    piVar6 = *(int **)(puVar37 + -0x58);
  }
  if (*(int *)(puVar37 + -0x2c) == *piVar6) {
    return *piVar6;
  }
  pcVar39 = *(code **)(puVar35 + -0x7b70);
  uVar25 = 0x3206c;
  (*pcVar39)();
  pcVar36 = pcVar39 + 0x72fd0;
  puVar10 = puVar3 + -0x38;
  *(Elf32_Ehdr **)(puVar3 + -0x10) = pEVar29;
  piVar6 = *(int **)(pcVar39 + 0x6b4d0);
  *(undefined1 **)(puVar3 + -8) = puVar37 + -0xa8;
  *(Elf32_Ehdr **)(puVar3 + -0x14) = pEVar28;
  *(Elf32_Ehdr **)(puVar3 + -0x18) = param_1;
  *(undefined4 *)(puVar3 + -4) = uVar25;
  *(Elf32_Ehdr **)(puVar3 + -0xc) = pEVar30;
  *(code **)(puVar3 + -0x28) = pcVar36;
  *(int *)(puVar3 + -0x1c) = *piVar6;
  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar18) {
    if (*piVar14 < (int)(((uint)pEVar18 >> 5) + ((uint)pEVar18 >> 6) + 1)) {
      pEVar30 = (Elf32_Ehdr *)(**(code **)(pcVar39 + 0x6b550))();
      pcVar36 = *(code **)(puVar3 + -0x28);
    }
    else {
      pEVar30 = (Elf32_Ehdr *)piVar14[2];
    }
    iVar11 = (**(code **)(pcVar36 + -0x7efc))(pEVar30,pEVar18);
    pcVar36 = *(code **)(puVar3 + -0x28);
    puVar4 = (undefined4 *)(*(int *)(pcVar36 + -0x7c6c) + 0x1c);
    uVar17 = 8;
    do {
      uVar42 = uVar17;
      pEVar28 = (Elf32_Ehdr *)*puVar4;
      puVar4 = puVar4 + -1;
      uVar17 = uVar42 - 1;
    } while (pEVar28 < pEVar18);
    if (uVar42 == 0) {
      trap(7);
    }
    uVar17 = ((iVar11 + 1U) / uVar42 + 1) * 4;
    *(undefined4 *)(puVar3 + -0x20) = 0;
    if (uVar17 < 0x7f01) {
      iVar11 = -(uVar17 + 7 & 0xfffffff8);
      puVar10 = puVar3 + iVar11 + -0x38;
      pEVar28 = (Elf32_Ehdr *)(puVar3 + iVar11 + -0x28);
    }
    else {
      pEVar28 = (Elf32_Ehdr *)(**(code **)(pcVar36 + -0x7d50))(puVar3 + -0x20);
      pcVar36 = *(code **)(puVar3 + -0x28);
    }
    iVar13 = 0;
    uVar43 = 1;
    iVar11 = 0;
    uVar17 = 0;
    uVar42 = 6;
    do {
      uVar41 = uVar17 + 1;
      iVar16 = iVar11;
      uVar8 = uVar42;
      if ((uVar43 & *(uint *)(pEVar30->e_ident_magic_str + iVar13 * 4 + -1)) == 0) {
        uVar8 = (uVar41 & 1) + 1 + uVar41 * 3;
        if ((int)((ulonglong)uVar42 * ZEXT48(pEVar18) >> 0x20) == 0) {
          uVar8 = uVar42 * uVar8;
        }
        else {
          iVar16 = iVar11 + 1;
          *(uint *)(pEVar28->e_ident_magic_str + iVar11 * 4 + -1) = uVar42;
        }
      }
      uVar43 = uVar43 * 2 - ((int)uVar43 >> 0x1f);
      bVar1 = uVar17 != ((uint)((int)&pEVar18[-1].e_shentsize + 1) | 1) / 3;
      iVar13 = iVar13 + (uVar43 & 1);
      iVar11 = iVar16;
      uVar17 = uVar41;
      uVar42 = uVar8;
    } while (bVar1);
    if (iVar16 == 0) {
      *(uint *)piVar14[2] = uVar8;
      piVar14[1] = 1;
    }
    else {
      pcVar39 = *(code **)(pcVar36 + -0x7dbc);
      *(uint *)(pEVar28->e_ident_magic_str + iVar16 * 4 + -1) = uVar8;
      (*pcVar39)(piVar14,pEVar28,iVar16 + 1);
      pcVar36 = *(code **)(puVar3 + -0x28);
    }
    piVar31 = *(int **)(puVar3 + -0x20);
    if (piVar31 != (int *)0x0) {
      (**(code **)(pcVar36 + -0x7a28))();
      pcVar36 = *(code **)(puVar3 + -0x28);
    }
  }
  else {
    pEVar27 = (Elf32_Ehdr *)((int)pEVar18 * 4 + *(int *)(pcVar39 + 0x6affc) + 0x3750);
    *(undefined4 *)piVar14[2] = *(undefined4 *)pEVar27;
    piVar14[1] = 1;
    piVar31 = piVar14;
    pEVar28 = pEVar18;
    pEVar18 = pEVar27;
    puVar10 = puVar3 + -0x38;
  }
  if (*(int *)(puVar3 + -0x1c) == *piVar6) {
    return *piVar6;
  }
  pcVar39 = *(code **)(pcVar36 + -0x7b70);
  pcVar40 = __gmpz_probab_prime_p;
  (*pcVar39)();
  pcVar36 = *(code **)(pcVar39 + 0x6ae78);
  *(int **)(puVar10 + -0x24) = piVar14;
  *(int **)(puVar10 + -0x20) = piVar6;
  piVar14 = *(int **)(pcVar39 + 0x6b270);
  *(Elf32_Ehdr **)(puVar10 + -0x18) = pEVar20;
  *(Elf32_Ehdr **)(puVar10 + -0x1c) = pEVar30;
  pEVar20 = (Elf32_Ehdr *)0xf4240;
  *(code **)(puVar10 + -0x88) = pcVar39 + 0x72d70;
  *(Elf32_Ehdr **)(puVar10 + -0x10) = pEVar32;
  *(Elf32_Ehdr **)(puVar10 + -0x14) = param_3;
  *(Elf32_Ehdr **)(puVar10 + -0x28) = pEVar18;
  *(code **)(puVar10 + -4) = pcVar40;
  *(undefined1 **)(puVar10 + -8) = puVar3 + -0x38;
  *(Elf32_Ehdr **)(puVar10 + -0xc) = param_6;
  *(int *)(puVar10 + -0x2c) = *piVar14;
  iVar11 = (*pcVar36)();
  puVar33 = (uint *)piVar31[2];
  iVar13 = *(int *)(puVar10 + -0x88);
  pEVar32 = (Elf32_Ehdr *)piVar31[1];
  uVar17 = *puVar33;
  if (iVar11 < 1) {
    pEVar20 = (Elf32_Ehdr *)0xf4240;
    iVar11 = (**(code **)(iVar13 + -0x7ab4))(piVar31);
    iVar13 = *(int *)(puVar10 + -0x88);
    if (iVar11 < 1) {
      iVar11 = 0;
      if (pEVar32 != (Elf32_Ehdr *)0x0) {
        if (uVar17 < 3) {
          iVar11 = 2;
          if (uVar17 != 2) {
            iVar11 = 0;
          }
        }
        else {
          uVar42 = 3;
          if ((uVar17 & 1) != 0) {
            do {
              if (uVar42 == 0) {
                trap(7);
              }
              uVar43 = uVar17 % uVar42;
              if (uVar17 / uVar42 < uVar42) {
                iVar11 = 2;
                goto LAB_00032354;
              }
              uVar42 = uVar42 + 2;
            } while (uVar43 != 0);
            iVar11 = 0;
          }
        }
      }
      goto LAB_00032354;
    }
    pEVar32 = (Elf32_Ehdr *)-(int)pEVar32;
    *(uint **)(puVar10 + -0x6c) = puVar33;
    piVar31 = (int *)(puVar10 + -0x74);
    *(Elf32_Ehdr **)(puVar10 + -0x70) = pEVar32;
  }
  if (pEVar32 != (Elf32_Ehdr *)0x0) {
    uVar17 = uVar17 & 1;
    iVar11 = 0;
    if (uVar17 == 0) goto LAB_00032354;
    pEVar20 = pEVar32;
    if ((int)pEVar32 < 10) {
      uVar42 = (**(code **)(iVar13 + -0x7c24))(puVar33,pEVar32,0xc0cfd797,0x53e5645c);
      iVar13 = *(int *)(puVar10 + -0x88);
    }
    else {
      uVar42 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,0xc0cfd797);
      iVar13 = *(int *)(puVar10 + -0x88);
    }
    if ((((((uVar42 != (uVar42 / 3) * 3) && (uVar42 != (uVar42 / 5) * 5)) &&
          (uVar42 != (uVar42 / 7) * 7)) &&
         ((uVar42 != (uVar42 / 0xb) * 0xb && (uVar42 != (uVar42 / 0xd) * 0xd)))) &&
        ((uVar42 != (uVar42 / 0x11) * 0x11 &&
         ((uVar42 != (uVar42 / 0x13) * 0x13 && (uVar42 != (uVar42 / 0x17) * 0x17)))))) &&
       (uVar42 != (uVar42 / 0x1d) * 0x1d)) {
      uVar42 = (**(code **)(iVar13 + -0x7f14))(piVar31,2);
      iVar13 = *(int *)(puVar10 + -0x88);
      if (0x1f < uVar42) {
        iVar16 = 0;
        iVar11 = 0;
        uVar43 = 0x1f;
        do {
          uVar8 = 3;
          do {
            if (uVar8 == 0) {
              trap(7);
            }
            uVar41 = uVar43 % uVar8;
            if (uVar43 / uVar8 < uVar8) {
              if (iVar16 * uVar17 + (int)((ulonglong)uVar17 * (ulonglong)uVar43 >> 0x20) == 0) {
                iVar26 = iVar11 + 1;
                uVar17 = (uint)((ulonglong)uVar17 * (ulonglong)uVar43);
              }
              else {
                *(uint *)(puVar10 + -0x7c) = uVar42;
                *(int *)(puVar10 + -0x80) = iVar11;
                if ((int)pEVar32 < 10) {
                  uVar8 = (**(code **)(iVar13 + -0x7c68))(puVar33,pEVar32,uVar17,0);
                  iVar13 = *(int *)(puVar10 + -0x88);
                  iVar11 = *(int *)(puVar10 + -0x80);
                  uVar42 = *(uint *)(puVar10 + -0x7c);
                }
                else {
                  uVar8 = (**(code **)(iVar13 + -0x7b80))(puVar33,pEVar32,uVar17);
                  iVar13 = *(int *)(puVar10 + -0x88);
                  uVar42 = *(uint *)(puVar10 + -0x7c);
                  iVar11 = *(int *)(puVar10 + -0x80);
                }
                uVar17 = uVar43;
                if (iVar11 + -1 != -1) {
                  if (*(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) == 0) {
                    trap(7);
                  }
                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -1) * 4 + -0x68) != 0) {
                    if (iVar11 + -2 == -1) goto LAB_0003295c;
                    if (*(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) == 0) {
                      trap(7);
                    }
                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -2) * 4 + -0x68) != 0) {
                      if (iVar11 + -3 == -1) goto LAB_0003295c;
                      if (*(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) == 0) {
                        trap(7);
                      }
                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -3) * 4 + -0x68) != 0) {
                        if (iVar11 + -4 == -1) goto LAB_0003295c;
                        if (*(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) == 0) {
                          trap(7);
                        }
                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -4) * 4 + -0x68) != 0) {
                          if (iVar11 + -5 == -1) goto LAB_0003295c;
                          if (*(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) == 0) {
                            trap(7);
                          }
                          if (uVar8 % *(uint *)(puVar10 + (iVar11 + -5) * 4 + -0x68) != 0) {
                            if (iVar11 + -6 == -1) goto LAB_0003295c;
                            if (*(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) == 0) {
                              trap(7);
                            }
                            if (uVar8 % *(uint *)(puVar10 + (iVar11 + -6) * 4 + -0x68) != 0) {
                              if (iVar11 + -7 == -1) goto LAB_0003295c;
                              if (*(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) == 0) {
                                trap(7);
                              }
                              if (uVar8 % *(uint *)(puVar10 + (iVar11 + -7) * 4 + -0x68) != 0) {
                                if (iVar11 + -8 == -1) goto LAB_0003295c;
                                if (*(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) == 0) {
                                  trap(7);
                                }
                                if (uVar8 % *(uint *)(puVar10 + (iVar11 + -8) * 4 + -0x68) != 0) {
                                  if (iVar11 + -9 == -1) goto LAB_0003295c;
                                  if (*(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) == 0) {
                                    trap(7);
                                  }
                                  if (uVar8 % *(uint *)(puVar10 + (iVar11 + -9) * 4 + -0x68) != 0) {
                                    if (iVar11 + -10 == -1) goto LAB_0003295c;
                                    if (*(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) == 0) {
                                      trap(7);
                                    }
                                    if (uVar8 % *(uint *)(puVar10 + (iVar11 + -10) * 4 + -0x68) != 0
                                       ) {
                                      if (iVar11 + -0xb == -1) goto LAB_0003295c;
                                      if (*(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68) == 0) {
                                        trap(7);
                                      }
                                      if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xb) * 4 + -0x68)
                                          != 0) {
                                        if (iVar11 + -0xc == -1) goto LAB_0003295c;
                                        if (*(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68) == 0) {
                                          trap(7);
                                        }
                                        if (uVar8 % *(uint *)(puVar10 + (iVar11 + -0xc) * 4 + -0x68)
                                            != 0) {
                                          if (iVar11 + -0xd == -1) goto LAB_0003295c;
                                          if (*(uint *)(puVar10 + (iVar11 + -0xd) * 4 + -0x68) == 0)
                                          {
                                            trap(7);
                                          }
                                          if (uVar8 % *(uint *)(puVar10 +
                                                               (iVar11 + -0xd) * 4 + -0x68) != 0) {
                                            if (iVar11 + -0xe == -1) goto LAB_0003295c;
                                            if (*(uint *)(puVar10 + (iVar11 + -0xe) * 4 + -0x68) ==
                                                0) {
                                              trap(7);
                                            }
                                            if (uVar8 % *(uint *)(puVar10 +
                                                                 (iVar11 + -0xe) * 4 + -0x68) != 0)
                                            {
                                              if (iVar11 + -0xf == -1) goto LAB_0003295c;
                                              if (*(uint *)(puVar10 + (iVar11 + -0xf) * 4 + -0x68)
                                                  == 0) {
                                                trap(7);
                                              }
                                              iVar26 = 1;
                                              if (uVar8 % *(uint *)(puVar10 +
                                                                   (iVar11 + -0xf) * 4 + -0x68) != 0
                                                 ) {
                                                iVar11 = 0;
                                                goto LAB_00032678;
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                  pEVar20 = pEVar32;
                  iVar26 = (**(code **)(iVar13 + -0x7b80))(puVar33);
                  iVar11 = 0;
                  iVar13 = *(int *)(puVar10 + -0x88);
                  if (iVar26 == 0) goto LAB_00032354;
                  (**(code **)(iVar13 + -0x7c20))
                            (*(int *)(iVar13 + -0x7fd4) + 0x37cc,0x81,
                             *(int *)(iVar13 + -0x7fd4) + 0x3770);
                }
LAB_0003295c:
                iVar26 = 1;
                iVar11 = 0;
              }
LAB_00032678:
              *(uint *)(puVar10 + iVar11 * 4 + -0x68) = uVar43;
              break;
            }
            uVar8 = uVar8 + 2;
            iVar26 = iVar11;
          } while (uVar41 != 0);
          uVar8 = uVar43 + 2;
          iVar16 = (uint)(uVar8 < uVar43) + iVar16;
          iVar11 = iVar26;
          uVar43 = uVar8;
        } while (uVar8 < uVar42);
      }
      iVar11 = (**(code **)(iVar13 + -0x7d48))(piVar31);
      iVar13 = *(int *)(puVar10 + -0x88);
      pEVar20 = pEVar28;
      goto LAB_00032354;
    }
  }
  iVar11 = 0;
LAB_00032354:
  iVar16 = *(int *)(puVar10 + -0x2c);
  if (iVar16 != *piVar14) {
    pcVar39 = *(code **)(iVar13 + -0x7b70);
    uVar25 = 0x32974;
    (*pcVar39)();
    pcVar36 = pcVar39 + 0x726c0;
    pcVar9 = *(char **)(pcVar39 + 0x6a808);
    *(int **)(puVar10 + -0xa0) = piVar14;
    *(Elf32_Ehdr **)(puVar10 + -0xa4) = pEVar32;
    *(code **)(puVar10 + -0xb0) = pcVar36;
    *(undefined4 *)(puVar10 + -0x9c) = uVar25;
    if (*pcVar9 == '\0') {
      pcVar36 = *(code **)(pcVar39 + 0x6ac84);
      uVar25 = *(undefined4 *)(pcVar39 + 0x6a8fc);
      *pcVar9 = '\x01';
      (*pcVar36)(uVar25);
      pcVar36 = *(code **)(puVar10 + -0xb0);
    }
    pEVar32 = pEVar20;
    if ((int)pEVar20 < 0) {
      pEVar32 = (Elf32_Ehdr *)-(int)pEVar20;
    }
    iVar11 = (**(code **)(pcVar36 + -0x7f7c))
                       (iVar16,*(undefined4 *)(pcVar36 + -0x7dc4),(int)pEVar32 << 5);
    if ((int)pEVar20 < 0) {
      iVar11 = -*(int *)(iVar16 + 4);
      *(int *)(iVar16 + 4) = iVar11;
    }
    return iVar11;
  }
  return iVar11;
}

